use itertools::Itertools;
use itertools::{put_back, put_back_n};
#[ test]
fn peeking_take_while_peekable() {
let mut r = (0 ..10 ).peekable();
r.peeking_take_while(|x| *x <= 3 ).count();
assert_eq!(r.next(), Some(4 ));
}
#[ test]
fn peeking_take_while_put_back() {
let mut r = put_back(0 ..10 );
r.peeking_take_while(|x| *x <= 3 ).count();
assert_eq!(r.next(), Some(4 ));
r.peeking_take_while(|_| true ).count();
assert_eq!(r.next(), None);
}
#[ test]
fn peeking_take_while_put_back_n() {
let mut r = put_back_n(6 ..10 );
for elt in (0 ..6 ).rev() {
r.put_back(elt);
}
r.peeking_take_while(|x| *x <= 3 ).count();
assert_eq!(r.next(), Some(4 ));
r.peeking_take_while(|_| true ).count();
assert_eq!(r.next(), None);
}
#[ test]
fn peeking_take_while_slice_iter() {
let v = [1 , 2 , 3 , 4 , 5 , 6 ];
let mut r = v.iter();
r.peeking_take_while(|x| **x <= 3 ).count();
assert_eq!(r.next(), Some(&4 ));
r.peeking_take_while(|_| true ).count();
assert_eq!(r.next(), None);
}
#[ test]
fn peeking_take_while_slice_iter_rev() {
let v = [1 , 2 , 3 , 4 , 5 , 6 ];
let mut r = v.iter().rev();
r.peeking_take_while(|x| **x >= 3 ).count();
assert_eq!(r.next(), Some(&2 ));
r.peeking_take_while(|_| true ).count();
assert_eq!(r.next(), None);
}
#[ test]
fn peeking_take_while_nested() {
let mut xs = (0 ..10 ).peekable();
let ys: Vec<_> = xs
.peeking_take_while(|x| *x < 6 )
.peeking_take_while(|x| *x != 3 )
.collect();
assert_eq!(ys, vec![0 , 1 , 2 ]);
assert_eq!(xs.next(), Some(3 ));
let mut xs = (4 ..10 ).peekable();
let ys: Vec<_> = xs
.peeking_take_while(|x| *x != 3 )
.peeking_take_while(|x| *x < 6 )
.collect();
assert_eq!(ys, vec![4 , 5 ]);
assert_eq!(xs.next(), Some(6 ));
}
Messung V0.5 in Prozent C=83 H=94 G=88
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet am 2026-08-27)
¤
*© Formatika GbR, Deutschland