about summary refs log tree commit diff
path: root/src/libcore/tests
diff options
context:
space:
mode:
authorSimon Sapin <simon.sapin@exyr.org>2018-11-15 14:23:20 +0100
committerSimon Sapin <simon.sapin@exyr.org>2018-11-20 18:22:40 +0100
commit641c4909e4de0334c83372b4795388d98cfd257a (patch)
tree01dd283299e54bf55d53ed02ccb7e24e5cb63866 /src/libcore/tests
parent22228186c0d373774a117375c2c264024bfd4b48 (diff)
downloadrust-641c4909e4de0334c83372b4795388d98cfd257a.tar.gz
rust-641c4909e4de0334c83372b4795388d98cfd257a.zip
Add std::iter::successors
Diffstat (limited to 'src/libcore/tests')
-rw-r--r--src/libcore/tests/iter.rs11
-rw-r--r--src/libcore/tests/lib.rs1
2 files changed, 12 insertions, 0 deletions
diff --git a/src/libcore/tests/iter.rs b/src/libcore/tests/iter.rs
index ec09071b3d0..495483db555 100644
--- a/src/libcore/tests/iter.rs
+++ b/src/libcore/tests/iter.rs
@@ -1760,6 +1760,17 @@ fn test_repeat_with_take_collect() {
 }
 
 #[test]
+fn test_successors() {
+    let mut powers_of_10 = successors(Some(1_u16), |n| n.checked_mul(10));
+    assert_eq!(powers_of_10.by_ref().collect::<Vec<_>>(), &[1, 10, 100, 1_000, 10_000]);
+    assert_eq!(powers_of_10.next(), None);
+
+    let mut empty = successors(None::<u32>, |_| unimplemented!());
+    assert_eq!(empty.next(), None);
+    assert_eq!(empty.next(), None);
+}
+
+#[test]
 fn test_fuse() {
     let mut it = 0..3;
     assert_eq!(it.len(), 3);
diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs
index 5ac89912268..7d62b4fa90f 100644
--- a/src/libcore/tests/lib.rs
+++ b/src/libcore/tests/lib.rs
@@ -19,6 +19,7 @@
 #![feature(flt2dec)]
 #![feature(fmt_internals)]
 #![feature(hashmap_internals)]
+#![feature(iter_unfold)]
 #![feature(pattern)]
 #![feature(range_is_empty)]
 #![feature(raw)]