use itertools::Itertools;
#[ test]
fn tuples() {
let v = [1 , 2 , 3 , 4 , 5 ];
let mut iter = v.iter().cloned().tuples();
assert_eq!(Some((1 ,)), iter.next());
assert_eq!(Some((2 ,)), iter.next());
assert_eq!(Some((3 ,)), iter.next());
assert_eq!(Some((4 ,)), iter.next());
assert_eq!(Some((5 ,)), iter.next());
assert_eq!(None, iter.next());
assert_eq!(None, iter.into_buffer().next());
let mut iter = v.iter().cloned().tuples();
assert_eq!(Some((1 , 2 )), iter.next());
assert_eq!(Some((3 , 4 )), iter.next());
assert_eq!(None, iter.next());
itertools::assert_equal(vec![5 ], iter.into_buffer());
let mut iter = v.iter().cloned().tuples();
assert_eq!(Some((1 , 2 , 3 )), iter.next());
assert_eq!(None, iter.next());
itertools::assert_equal(vec![4 , 5 ], iter.into_buffer());
let mut iter = v.iter().cloned().tuples();
assert_eq!(Some((1 , 2 , 3 , 4 )), iter.next());
assert_eq!(None, iter.next());
itertools::assert_equal(vec![5 ], iter.into_buffer());
}
#[ test]
fn tuple_windows() {
let v = [1 , 2 , 3 , 4 , 5 ];
let mut iter = v.iter().cloned().tuple_windows();
assert_eq!(Some((1 ,)), iter.next());
assert_eq!(Some((2 ,)), iter.next());
assert_eq!(Some((3 ,)), iter.next());
let mut iter = v.iter().cloned().tuple_windows();
assert_eq!(Some((1 , 2 )), iter.next());
assert_eq!(Some((2 , 3 )), iter.next());
assert_eq!(Some((3 , 4 )), iter.next());
assert_eq!(Some((4 , 5 )), iter.next());
assert_eq!(None, iter.next());
let mut iter = v.iter().cloned().tuple_windows();
assert_eq!(Some((1 , 2 , 3 )), iter.next());
assert_eq!(Some((2 , 3 , 4 )), iter.next());
assert_eq!(Some((3 , 4 , 5 )), iter.next());
assert_eq!(None, iter.next());
let mut iter = v.iter().cloned().tuple_windows();
assert_eq!(Some((1 , 2 , 3 , 4 )), iter.next());
assert_eq!(Some((2 , 3 , 4 , 5 )), iter.next());
assert_eq!(None, iter.next());
let v = [1 , 2 , 3 ];
let mut iter = v.iter().cloned().tuple_windows::<(_, _, _, _)>();
assert_eq!(None, iter.next());
}
#[ test]
fn next_tuple() {
let v = [1 , 2 , 3 , 4 , 5 ];
let mut iter = v.iter();
assert_eq!(iter.next_tuple().map(|(&x, &y)| (x, y)), Some((1 , 2 )));
assert_eq!(iter.next_tuple().map(|(&x, &y)| (x, y)), Some((3 , 4 )));
assert_eq!(iter.next_tuple::<(_, _)>(), None);
}
#[ test]
fn collect_tuple() {
let v = [1 , 2 ];
let iter = v.iter().cloned();
assert_eq!(iter.collect_tuple(), Some((1 , 2 )));
let v = [1 ];
let iter = v.iter().cloned();
assert_eq!(iter.collect_tuple::<(_, _)>(), None);
let v = [1 , 2 , 3 ];
let iter = v.iter().cloned();
assert_eq!(iter.collect_tuple::<(_, _)>(), None);
}
Messung V0.5 in Prozent C=100 H=99 G=99
¤ Dauer der Verarbeitung: 0.10 Sekunden
(vorverarbeitet am 2026-06-19)
¤
*© Formatika GbR, Deutschland