use orx_concurrent_iter::{implementations::ConIterVec, *};
#[test]
fn new() {
let values = vec!['a', 'b', 'c'];
let con_iter: ConIterVec<_> = values.into_con_iter();
let mut collected = vec![];
while let Some(x) = con_iter.next() {
collected.push(x);
}
assert_eq!(collected, vec!['a', 'b', 'c']);
}
#[test]
fn debug() {
let mut values = Vec::with_capacity(4);
values.extend(['a', 'b', 'c']);
let con_iter: ConIterVec<_> = values.into_con_iter();
assert_eq!(
format!("{:?}", con_iter),
"ConIterVec { initial_len: 3, num_taken: 0, remaining: 3 }"
);
assert_eq!(con_iter.next(), Some('a'));
assert_eq!(
format!("{:?}", con_iter),
"ConIterVec { initial_len: 3, num_taken: 1, remaining: 2 }"
);
assert_eq!(con_iter.next(), Some('b'));
assert_eq!(con_iter.next(), Some('c'));
assert_eq!(
format!("{:?}", con_iter),
"ConIterVec { initial_len: 3, num_taken: 3, remaining: 0 }"
);
assert_eq!(con_iter.next(), None);
assert_eq!(
format!("{:?}", con_iter),
"ConIterVec { initial_len: 3, num_taken: 3, remaining: 0 }"
);
}