| use core::iter::*; | |
| #[test] | |
| fn test_iterator_scan() { | |
| // test the type inference | |
| fn add(old: &mut isize, new: &usize) -> Option<f64> { | |
| *old += *new as isize; | |
| Some(*old as f64) | |
| } | |
| let xs = [0, 1, 2, 3, 4]; | |
| let ys = [0f64, 1.0, 3.0, 6.0, 10.0]; | |
| let it = xs.iter().scan(0, add); | |
| let mut i = 0; | |
| for x in it { | |
| assert_eq!(x, ys[i]); | |
| i += 1; | |
| } | |
| assert_eq!(i, ys.len()); | |
| } |