79 lines
2.2 KiB
Rust
79 lines
2.2 KiB
Rust
|
|
#[test]
|
||
|
|
fn prohibiting_set_1() {
|
||
|
|
use std::collections::BTreeMap;
|
||
|
|
|
||
|
|
use super::set::{Set, PositiveSet};
|
||
|
|
use super::element::IdState;
|
||
|
|
|
||
|
|
let r1r = Set::from(vec![2, 3, 4]);
|
||
|
|
let r1i = Set::from(vec![5, 6, 7]);
|
||
|
|
|
||
|
|
let r2r = Set::from(vec![2, 3, 11]);
|
||
|
|
let r2i = Set::from(vec![5, 6, 7]);
|
||
|
|
|
||
|
|
let prohibiting_set = Set::prohibiting_set(&[r1r, r2r], &[r1i, r2i]).unwrap();
|
||
|
|
|
||
|
|
assert_eq!(prohibiting_set,
|
||
|
|
vec![PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(2, IdState::Negative)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(3, IdState::Negative)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(5, IdState::Positive)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(6, IdState::Positive)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(7, IdState::Positive)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(4, IdState::Negative),
|
||
|
|
(11, IdState::Negative)]) }])
|
||
|
|
}
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn prohibiting_set_2() {
|
||
|
|
use std::collections::BTreeMap;
|
||
|
|
|
||
|
|
use super::set::{Set, PositiveSet};
|
||
|
|
use super::element::IdState;
|
||
|
|
|
||
|
|
let r1r = Set::from(vec![1]);
|
||
|
|
let r1i = Set::from(vec![2]);
|
||
|
|
|
||
|
|
let r2r = Set::from(vec![1]);
|
||
|
|
let r2i = Set::from(vec![3]);
|
||
|
|
|
||
|
|
let prohibiting_set = Set::prohibiting_set(&[r1r, r2r], &[r1i, r2i]).unwrap();
|
||
|
|
|
||
|
|
assert_eq!(prohibiting_set,
|
||
|
|
vec![PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(1, IdState::Negative)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(2, IdState::Positive),
|
||
|
|
(3, IdState::Positive)]) }])
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
#[test]
|
||
|
|
fn prohibiting_set_3() {
|
||
|
|
use std::collections::BTreeMap;
|
||
|
|
|
||
|
|
use super::set::{Set, PositiveSet};
|
||
|
|
use super::element::IdState;
|
||
|
|
|
||
|
|
let r1r = Set::from(vec![1]);
|
||
|
|
let r1i = Set::from(vec![2]);
|
||
|
|
|
||
|
|
let r2r = Set::from(vec![3]);
|
||
|
|
let r2i = Set::from(vec![1]);
|
||
|
|
|
||
|
|
let prohibiting_set = Set::prohibiting_set(&[r1r, r2r], &[r1i, r2i]).unwrap();
|
||
|
|
|
||
|
|
assert_eq!(prohibiting_set,
|
||
|
|
vec![PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(1, IdState::Negative),
|
||
|
|
(3, IdState::Negative)]) },
|
||
|
|
PositiveSet { identifiers:
|
||
|
|
BTreeMap::from([(2, IdState::Positive),
|
||
|
|
(3, IdState::Negative)]) }])
|
||
|
|
}
|