#[test]
fn double_ended_iter() {
let v = vec![0, 1, 2, 3];
let mut iter = v.iter();
assert_eq!(iter.next(), Some(&0));
assert_eq!(iter.next(), Some(&1));
assert_eq!(iter.next_back(), Some(&3));
assert_eq!(iter.next(), Some(&2));
assert_eq!(iter.next(), None);
}
#[test]
fn peek() {
let v = vec![0, 1, 2, 3];
let mut iter = v.iter().peekable();
assert_eq!(iter.peek(), Some(&&0));
assert_eq!(iter.next(), Some(&0));
assert_eq!(iter.next(), Some(&1));
assert_eq!(iter.peek(), Some(&&2));
assert_eq!(iter.peek(), Some(&&2));
}
#[test]
fn exact_size() {
let v = vec![0, 1, 2, 3];
let mut iter = v.iter();
assert_eq!(iter.len(), 4);
iter.next();
assert_eq!(iter.len(), 3);
}