diff --git a/tests/tuples.rs b/tests/tuples.rs index 9fc8b3cc7..c1aa156e0 100644 --- a/tests/tuples.rs +++ b/tests/tuples.rs @@ -61,6 +61,30 @@ fn tuple_windows() { assert_eq!(None, iter.next()); } +#[test] +fn circular_tuple_windows() { + let v = [1, 2, 3, 4, 5]; + + let mut iter = v.iter().cloned().circular_tuple_windows(); + assert_eq!(Some((1,)), iter.next()); + assert_eq!(Some((2,)), iter.next()); + assert_eq!(Some((3,)), iter.next()); + + let mut iter = v.iter().cloned().circular_tuple_windows(); + assert_eq!(Some((1, 2, 3, 4)), iter.next()); + assert_eq!(Some((2, 3, 4, 5)), iter.next()); + // Testing impl Clone for CircularTupleWindows + let mut iter2 = iter.clone(); + assert_eq!(Some((3, 4, 5, 1)), iter.next()); + assert_eq!(Some((3, 4, 5, 1)), iter2.next()); + assert_eq!(Some((4, 5, 1, 2)), iter.next()); + assert_eq!(Some((4, 5, 1, 2)), iter2.next()); + assert_eq!(Some((5, 1, 2, 3)), iter.next()); + assert_eq!(Some((5, 1, 2, 3)), iter2.next()); + assert_eq!(None, iter.next()); + assert_eq!(None, iter2.next()); +} + #[test] fn next_tuple() { let v = [1, 2, 3, 4, 5];