extern crate hamcrest2;
mod contains {
use hamcrest2::prelude::*;
#[test]
fn vec_contains() {
let vec = vec![1, 2, 3];
assert_that!(&vec, contains(vec![1, 2]));
assert_that!(&vec, not(contains(vec![4])));
}
#[test]
fn slice_contains() {
let slice: &[i32] = &[1, 2, 3];
assert_that!(slice, contains(vec![1, 2]));
assert_that!(slice, not(contains(vec![4])));
}
#[test]
fn single_item_contains() {
assert_that!(&[1, 2, 3], contains(2));
assert_that!(&[1, 2, 3], not(contains(4)));
}
#[test]
fn vec_contains_exactly() {
assert_that!(&[1, 2, 3], contains(vec![1, 2, 3]).exactly());
assert_that!(&[1, 2, 3], not(contains(vec![1, 2]).exactly()));
}
#[test]
fn it_contains_elements_in_order() {
assert_that!(&[1, 2, 3], contains(vec![1, 2]).in_order());
}
#[test]
fn it_does_not_contain_elements_in_order() {
assert_that!(&[1, 2, 3], not(contains(vec![1, 3]).in_order()));
}
#[test]
#[should_panic]
fn it_unsuccessfully_contains_elements_in_order() {
assert_that!(&[1, 2, 3], contains(vec![1, 3]).in_order());
}
#[test]
#[should_panic]
fn it_unsuccessfully_does_not_contain_elements_in_order() {
assert_that!(&[1, 2, 3], not(contains(vec![2, 3]).in_order()));
}
}