use super::super::super::support::vv;
use crate::metis::VersionVector;
#[test]
fn test_difference_is_the_claim_not_the_subtraction() {
let a = vv(&[(1, 5)]);
let b = vv(&[(1, 3)]);
let owed = a.difference(&b);
assert_eq!(owed, vv(&[(1, 5)]));
assert_ne!(owed, vv(&[(1, 2)]));
assert_eq!(b.merge(&owed), a.merge(&b));
}
#[test]
fn test_difference_bottom_identities() {
let v = vv(&[(1, 3), (5, 2)]);
let bottom = VersionVector::new();
assert_eq!(v.difference(&bottom), v);
assert_eq!(v.difference(&v), bottom);
assert_eq!(bottom.difference(&v), bottom);
let a = vv(&[(1, 3), (2, 1)]);
let b = vv(&[(1, 1), (2, 4)]);
assert!(a.concurrent(&b));
assert_eq!(a.difference(&b), vv(&[(1, 3)]));
assert_eq!(b.difference(&a), vv(&[(2, 4)]));
}