diff options
| author | The 8472 <git@infinite-source.de> | 2023-03-27 14:56:14 +0200 |
|---|---|---|
| committer | The 8472 <git@infinite-source.de> | 2023-03-27 16:03:30 +0200 |
| commit | 41807938d2fbc7928d75b1d68ac08899682168a2 (patch) | |
| tree | 8f4c5b446fe3c09500a9d8d207f6a386d0f36553 /library/alloc/tests | |
| parent | 9cd9da2cd1c365791c7bf41be5759ebc34180aa0 (diff) | |
| download | rust-41807938d2fbc7928d75b1d68ac08899682168a2.tar.gz rust-41807938d2fbc7928d75b1d68ac08899682168a2.zip | |
fix advance_by impl for vec_deque and add tests
Diffstat (limited to 'library/alloc/tests')
| -rw-r--r-- | library/alloc/tests/vec_deque.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/library/alloc/tests/vec_deque.rs b/library/alloc/tests/vec_deque.rs index 5a0b852e8d5..ddc27e34ed9 100644 --- a/library/alloc/tests/vec_deque.rs +++ b/library/alloc/tests/vec_deque.rs @@ -1,3 +1,4 @@ +use core::num::NonZeroUsize; use std::assert_matches::assert_matches; use std::collections::TryReserveErrorKind::*; use std::collections::{vec_deque::Drain, VecDeque}; @@ -426,6 +427,28 @@ fn test_into_iter() { assert_eq!(it.next(), Some(7)); assert_eq!(it.size_hint(), (5, Some(5))); } + + // advance_by + { + let mut d = VecDeque::new(); + for i in 0..=4 { + d.push_back(i); + } + for i in 6..=8 { + d.push_front(i); + } + + let mut it = d.into_iter(); + assert_eq!(it.advance_by(1), Ok(())); + assert_eq!(it.next(), Some(7)); + assert_eq!(it.advance_back_by(1), Ok(())); + assert_eq!(it.next_back(), Some(3)); + + let mut it = VecDeque::from(vec![1, 2, 3, 4, 5]).into_iter(); + assert_eq!(it.advance_by(10), Err(NonZeroUsize::new(5).unwrap())); + let mut it = VecDeque::from(vec![1, 2, 3, 4, 5]).into_iter(); + assert_eq!(it.advance_back_by(10), Err(NonZeroUsize::new(5).unwrap())); + } } #[test] |
