]>
git.proxmox.com Git - rustc.git/blob - vendor/itertools-0.8.2/tests/tuples.rs
1 extern crate itertools
;
3 use itertools
::Itertools
;
7 let v
= [1, 2, 3, 4, 5];
8 let mut iter
= v
.iter().cloned().tuples();
9 assert_eq
!(Some((1,)), iter
.next());
10 assert_eq
!(Some((2,)), iter
.next());
11 assert_eq
!(Some((3,)), iter
.next());
12 assert_eq
!(Some((4,)), iter
.next());
13 assert_eq
!(Some((5,)), iter
.next());
14 assert_eq
!(None
, iter
.next());
15 assert_eq
!(None
, iter
.into_buffer().next());
17 let mut iter
= v
.iter().cloned().tuples();
18 assert_eq
!(Some((1, 2)), iter
.next());
19 assert_eq
!(Some((3, 4)), iter
.next());
20 assert_eq
!(None
, iter
.next());
21 itertools
::assert_equal(vec
![5], iter
.into_buffer());
23 let mut iter
= v
.iter().cloned().tuples();
24 assert_eq
!(Some((1, 2, 3)), iter
.next());
25 assert_eq
!(None
, iter
.next());
26 itertools
::assert_equal(vec
![4, 5], iter
.into_buffer());
28 let mut iter
= v
.iter().cloned().tuples();
29 assert_eq
!(Some((1, 2, 3, 4)), iter
.next());
30 assert_eq
!(None
, iter
.next());
31 itertools
::assert_equal(vec
![5], iter
.into_buffer());
36 let v
= [1, 2, 3, 4, 5];
38 let mut iter
= v
.iter().cloned().tuple_windows();
39 assert_eq
!(Some((1,)), iter
.next());
40 assert_eq
!(Some((2,)), iter
.next());
41 assert_eq
!(Some((3,)), iter
.next());
43 let mut iter
= v
.iter().cloned().tuple_windows();
44 assert_eq
!(Some((1, 2)), iter
.next());
45 assert_eq
!(Some((2, 3)), iter
.next());
46 assert_eq
!(Some((3, 4)), iter
.next());
47 assert_eq
!(Some((4, 5)), iter
.next());
48 assert_eq
!(None
, iter
.next());
50 let mut iter
= v
.iter().cloned().tuple_windows();
51 assert_eq
!(Some((1, 2, 3)), iter
.next());
52 assert_eq
!(Some((2, 3, 4)), iter
.next());
53 assert_eq
!(Some((3, 4, 5)), iter
.next());
54 assert_eq
!(None
, iter
.next());
56 let mut iter
= v
.iter().cloned().tuple_windows();
57 assert_eq
!(Some((1, 2, 3, 4)), iter
.next());
58 assert_eq
!(Some((2, 3, 4, 5)), iter
.next());
59 assert_eq
!(None
, iter
.next());
62 let mut iter
= v
.iter().cloned().tuple_windows
::<(_
, _
, _
, _
)>();
63 assert_eq
!(None
, iter
.next());
68 let v
= [1, 2, 3, 4, 5];
69 let mut iter
= v
.iter();
70 assert_eq
!(iter
.next_tuple().map(|(&x
, &y
)| (x
, y
)), Some((1, 2)));
71 assert_eq
!(iter
.next_tuple().map(|(&x
, &y
)| (x
, y
)), Some((3, 4)));
72 assert_eq
!(iter
.next_tuple
::<(_
, _
)>(), None
);
78 let iter
= v
.iter().cloned();
79 assert_eq
!(iter
.collect_tuple(), Some((1, 2)));
82 let iter
= v
.iter().cloned();
83 assert_eq
!(iter
.collect_tuple
::<(_
, _
)>(), None
);
86 let iter
= v
.iter().cloned();
87 assert_eq
!(iter
.collect_tuple
::<(_
, _
)>(), None
);