use monkey_test::*;
fn faulty_reverse<E>(list: Vec<E>) -> Vec<E> {
list
}
#[test]
fn test_reverse() {
let result = monkey_test()
.with_generator(gens::vec::any(gens::i16::any()))
.test_true(|list| {
let mut expected = list.clone();
expected.reverse();
let actual = faulty_reverse(list);
expected == actual
});
match result {
MonkeyResult::MonkeyErr {
minimum_failure,
original_failure,
shrink_count,
some_other_failures,
..
} => {
println!("original failure: {:?}", original_failure);
println!("shrink count: {:?}", shrink_count);
println!("other failures..: {:?}", some_other_failures);
let mut sorted_failure = minimum_failure.clone();
sorted_failure.sort();
assert_eq!(sorted_failure, vec![0, 1])
}
other => panic!("{:?} is unexpected", other),
}
}