]> git.lizzy.rs Git - rust.git/blob - library/core/tests/iter/adapters/inspect.rs
Rollup merge of #106549 - wcampbell0x2a:use-fmt-named-parameters-borrowck, r=estebank
[rust.git] / library / core / tests / iter / adapters / inspect.rs
1 use core::iter::*;
2
3 #[test]
4 fn test_inspect() {
5     let xs = [1, 2, 3, 4];
6     let mut n = 0;
7
8     let ys = xs.iter().cloned().inspect(|_| n += 1).collect::<Vec<usize>>();
9
10     assert_eq!(n, xs.len());
11     assert_eq!(&xs[..], &ys[..]);
12 }
13
14 #[test]
15 fn test_inspect_fold() {
16     let xs = [1, 2, 3, 4];
17     let mut n = 0;
18     {
19         let it = xs.iter().inspect(|_| n += 1);
20         let i = it.fold(0, |i, &x| {
21             assert_eq!(x, xs[i]);
22             i + 1
23         });
24         assert_eq!(i, xs.len());
25     }
26     assert_eq!(n, xs.len());
27
28     let mut n = 0;
29     {
30         let it = xs.iter().inspect(|_| n += 1);
31         let i = it.rfold(xs.len(), |i, &x| {
32             assert_eq!(x, xs[i - 1]);
33             i - 1
34         });
35         assert_eq!(i, 0);
36     }
37     assert_eq!(n, xs.len());
38 }