use super::super::super::support::dot;
use crate::metis::{Dot, DotFun, DotStore};
#[test]
fn test_duplicate_dot_insert_is_refused_unchanged() {
let mut store: DotFun<&str> = DotFun::new();
assert!(store.insert(dot(1, 1), "first"));
assert!(!store.insert(dot(1, 1), "second"));
assert_eq!(store.get(dot(1, 1)), Some(&"first"));
assert_eq!(store.len(), 1);
}
#[test]
fn test_dot_zero_is_not_a_dot_at_the_store_doors() {
assert!(Dot::from_parts(3, 0).is_err());
assert!(Dot::try_from((2, 0)).is_err());
let store: DotFun<&str> = DotFun::new();
assert!(store.is_bottom());
assert!(store.is_empty());
}
#[test]
fn test_singleton_builds_the_one_write_store() {
let real: DotFun<&str> = DotFun::singleton(dot(2, 4), "yes");
assert_eq!(real.len(), 1);
assert_eq!(real.get(dot(2, 4)), Some(&"yes"));
}