X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=library%2Fcore%2Ftests%2Fiter%2Fadapters%2Ftake.rs;h=bfb659f0a83780cab58bedecc1bc9c0dd68890ae;hb=3f9b26dc64a2068d30027fd29ffbbfe07663419f;hp=89f9cb1e2ed1bd6af4597e3f8e4aa4ace0d6598a;hpb=bb06b13131d71eabfd7c4cecac9c10032715e9bd;p=rust.git diff --git a/library/core/tests/iter/adapters/take.rs b/library/core/tests/iter/adapters/take.rs index 89f9cb1e2ed..bfb659f0a83 100644 --- a/library/core/tests/iter/adapters/take.rs +++ b/library/core/tests/iter/adapters/take.rs @@ -73,6 +73,28 @@ fn test_iterator_take_nth_back() { assert_eq!(it.nth_back(1), None); } +#[test] +fn test_take_advance_by() { + let mut take = (0..10).take(3); + assert_eq!(take.advance_by(2), Ok(())); + assert_eq!(take.next(), Some(2)); + assert_eq!(take.advance_by(1), Err(0)); + + assert_eq!((0..0).take(10).advance_by(0), Ok(())); + assert_eq!((0..0).take(10).advance_by(1), Err(0)); + assert_eq!((0..10).take(4).advance_by(5), Err(4)); + + let mut take = (0..10).take(3); + assert_eq!(take.advance_back_by(2), Ok(())); + assert_eq!(take.next(), Some(0)); + assert_eq!(take.advance_back_by(1), Err(0)); + + assert_eq!((0..2).take(1).advance_back_by(10), Err(1)); + assert_eq!((0..0).take(1).advance_back_by(1), Err(0)); + assert_eq!((0..0).take(1).advance_back_by(0), Ok(())); + assert_eq!((0..usize::MAX).take(100).advance_back_by(usize::MAX), Err(100)); +} + #[test] fn test_iterator_take_short() { let xs = [0, 1, 2, 3];