use dirtytype::Dirty;
#[test]
fn clean_test() {
let mut values = vec![];
let mut add = Dirty::new(5);
let mut add_func = |val: &mut i32| values.push(*val);
add.clean(&mut add_func);
*add = 3;
add.clean(&mut add_func);
add.clean(&mut add_func);
*add = 6;
add.clean(&mut add_func);
add.clean(&mut add_func);
dbg!(&values);
assert!(&[3, 6]
.into_iter()
.zip(values.into_iter())
.all(|(a, b)| a == b))
}
#[test]
fn test() {
let mut value = Dirty::new(5);
assert!(!value.dirty);
*value += 2;
assert!(value.dirty);
assert_eq!(*value, 7);
let mut name = Dirty::new("Foo".to_owned());
name.push_str(" Bar");
assert_eq!(*name, "Foo Bar");
}