]>
git.proxmox.com Git - rustc.git/blob - vendor/itertools/tests/tuples.rs
1 use itertools
::Itertools
;
5 let v
= [1, 2, 3, 4, 5];
6 let mut iter
= v
.iter().cloned().tuples();
7 assert_eq
!(Some((1,)), iter
.next());
8 assert_eq
!(Some((2,)), iter
.next());
9 assert_eq
!(Some((3,)), iter
.next());
10 assert_eq
!(Some((4,)), iter
.next());
11 assert_eq
!(Some((5,)), iter
.next());
12 assert_eq
!(None
, iter
.next());
13 assert_eq
!(None
, iter
.into_buffer().next());
15 let mut iter
= v
.iter().cloned().tuples();
16 assert_eq
!(Some((1, 2)), iter
.next());
17 assert_eq
!(Some((3, 4)), iter
.next());
18 assert_eq
!(None
, iter
.next());
19 itertools
::assert_equal(vec
![5], iter
.into_buffer());
21 let mut iter
= v
.iter().cloned().tuples();
22 assert_eq
!(Some((1, 2, 3)), iter
.next());
23 assert_eq
!(None
, iter
.next());
24 itertools
::assert_equal(vec
![4, 5], iter
.into_buffer());
26 let mut iter
= v
.iter().cloned().tuples();
27 assert_eq
!(Some((1, 2, 3, 4)), iter
.next());
28 assert_eq
!(None
, iter
.next());
29 itertools
::assert_equal(vec
![5], iter
.into_buffer());
34 let v
= [1, 2, 3, 4, 5];
36 let mut iter
= v
.iter().cloned().tuple_windows();
37 assert_eq
!(Some((1,)), iter
.next());
38 assert_eq
!(Some((2,)), iter
.next());
39 assert_eq
!(Some((3,)), iter
.next());
41 let mut iter
= v
.iter().cloned().tuple_windows();
42 assert_eq
!(Some((1, 2)), iter
.next());
43 assert_eq
!(Some((2, 3)), iter
.next());
44 assert_eq
!(Some((3, 4)), iter
.next());
45 assert_eq
!(Some((4, 5)), iter
.next());
46 assert_eq
!(None
, iter
.next());
48 let mut iter
= v
.iter().cloned().tuple_windows();
49 assert_eq
!(Some((1, 2, 3)), iter
.next());
50 assert_eq
!(Some((2, 3, 4)), iter
.next());
51 assert_eq
!(Some((3, 4, 5)), iter
.next());
52 assert_eq
!(None
, iter
.next());
54 let mut iter
= v
.iter().cloned().tuple_windows();
55 assert_eq
!(Some((1, 2, 3, 4)), iter
.next());
56 assert_eq
!(Some((2, 3, 4, 5)), iter
.next());
57 assert_eq
!(None
, iter
.next());
60 let mut iter
= v
.iter().cloned().tuple_windows
::<(_
, _
, _
, _
)>();
61 assert_eq
!(None
, iter
.next());
66 let v
= [1, 2, 3, 4, 5];
67 let mut iter
= v
.iter();
68 assert_eq
!(iter
.next_tuple().map(|(&x
, &y
)| (x
, y
)), Some((1, 2)));
69 assert_eq
!(iter
.next_tuple().map(|(&x
, &y
)| (x
, y
)), Some((3, 4)));
70 assert_eq
!(iter
.next_tuple
::<(_
, _
)>(), None
);
76 let iter
= v
.iter().cloned();
77 assert_eq
!(iter
.collect_tuple(), Some((1, 2)));
80 let iter
= v
.iter().cloned();
81 assert_eq
!(iter
.collect_tuple
::<(_
, _
)>(), None
);
84 let iter
= v
.iter().cloned();
85 assert_eq
!(iter
.collect_tuple
::<(_
, _
)>(), None
);