1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
pub mod stream; #[cfg(test)] mod tests { use super::*; #[test] fn compiles() { stream::Stream::from(vec![1, 2, 3]); } #[test] fn it_collects_value() { let val = vec![1, 2, 3]; let stream = stream::Stream::from(val); let collected = stream.collect(); let expected: u8 = 0b1; assert_eq!(expected, *collected.get(0).unwrap()); } #[test] fn it_maps_ints() { let val = vec![1, 2, 3]; let mapped_vals = stream::Stream::from(val).map(|v| v * 2).collect(); assert_eq!(2, *mapped_vals.get(0).unwrap()); assert_eq!(4, *mapped_vals.get(1).unwrap()); assert_eq!(6, *mapped_vals.get(2).unwrap()); } #[test] fn it_maps_strings() { let val = vec![ String::from("foo"), String::from("bar"), String::from("baz"), ]; let mapped_vals = stream::Stream::from(val) .map(|v: String| v.to_uppercase()) .collect(); assert_eq!("FOO", *mapped_vals.get(0).unwrap()); assert_eq!("BAR", *mapped_vals.get(1).unwrap()); assert_eq!("BAZ", *mapped_vals.get(2).unwrap()); } #[test] fn it_filters_ints() { let val: Vec<i32> = vec![1, 2, 3]; let filtered_vals = stream::Stream::from(val).filter(|v| v >= &2).collect(); assert_eq!(2, *filtered_vals.get(0).unwrap()); assert_eq!(3, *filtered_vals.get(1).unwrap()); } }