summaryrefslogtreecommitdiff
path: root/exercises
diff options
context:
space:
mode:
authorliv <mokou@fastmail.com>2023-05-17 15:56:55 +0200
committerGitHub <noreply@github.com>2023-05-17 15:56:55 +0200
commit81cd97902ad4801abc30b3fe4f1b19257152de7b (patch)
tree5a00c8cac12eaace24fdd43fe6425fdf984bb02a /exercises
parentccf4a78f5d17c61dc7cf1f3da6c070377169de3e (diff)
parent836134202ef505e03e8177565e512059488aded2 (diff)
Merge pull request #1487 from lionel-rowe/patch-1
feat(options2): better test for layered_option
Diffstat (limited to 'exercises')
-rw-r--r--exercises/options/options2.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/exercises/options/options2.rs b/exercises/options/options2.rs
index 4e36443..337c426 100644
--- a/exercises/options/options2.rs
+++ b/exercises/options/options2.rs
@@ -18,17 +18,22 @@ mod tests {
#[test]
fn layered_option() {
- let mut range = 10;
- let mut optional_integers: Vec<Option<i8>> = Vec::new();
- for i in 0..(range + 1) {
+ let range = 10;
+ let mut optional_integers: Vec<Option<i8>> = vec![None];
+
+ for i in 1..(range + 1) {
optional_integers.push(Some(i));
}
+ let mut cursor = range;
+
// TODO: make this a while let statement - remember that vector.pop also adds another layer of Option<T>
- // You can stack `Option<T>`'s into while let and if let
+ // You can stack `Option<T>`s into while let and if let
integer = optional_integers.pop() {
- assert_eq!(integer, range);
- range -= 1;
+ assert_eq!(integer, cursor);
+ cursor -= 1;
}
+
+ assert_eq!(cursor, 0);
}
}