test: Convert main function to working tests
This commit is contained in:
parent
d0c7b06eff
commit
52a29aa84b
|
@ -3,23 +3,34 @@
|
||||||
|
|
||||||
// I AM NOT DONE
|
// I AM NOT DONE
|
||||||
|
|
||||||
fn main() {
|
#[cfg(test)]
|
||||||
let optional_word = Some(String::from("rustlings"));
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn simple_option() {
|
||||||
|
let target = "rustlings";
|
||||||
|
let optional_target = Some(target);
|
||||||
|
|
||||||
// TODO: Make this an if let statement whose value is "Some" type
|
// TODO: Make this an if let statement whose value is "Some" type
|
||||||
word = optional_word {
|
if let Some(word) = optional_target {
|
||||||
println!("The word is: {}", word);
|
assert_eq!(word, target);
|
||||||
} else {
|
}
|
||||||
println!("The optional word doesn't contain anything");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut optional_integers_vec: Vec<Option<i8>> = Vec::new();
|
#[test]
|
||||||
for x in 1..10 {
|
fn layered_option() {
|
||||||
optional_integers_vec.push(Some(x));
|
let mut range = 10;
|
||||||
|
let mut optional_integers: Vec<Option<i8>> = Vec::new();
|
||||||
|
for i in 0..(range + 1) {
|
||||||
|
optional_integers.push(Some(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: make this a while let statement - remember that vector.pop also adds another layer of Option<T>
|
// 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_vec.pop() {
|
while let Some(Some(integer)) = optional_integers.pop() {
|
||||||
println!("current value: {}", integer);
|
assert_eq!(integer, range);
|
||||||
|
range -= 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -545,7 +545,7 @@ is the easiest, but how do you do it safely so that it doesn't panic in your fac
|
||||||
[[exercises]]
|
[[exercises]]
|
||||||
name = "options2"
|
name = "options2"
|
||||||
path = "exercises/options/options2.rs"
|
path = "exercises/options/options2.rs"
|
||||||
mode = "compile"
|
mode = "test"
|
||||||
hint = """
|
hint = """
|
||||||
check out:
|
check out:
|
||||||
https://doc.rust-lang.org/rust-by-example/flow_control/if_let.html
|
https://doc.rust-lang.org/rust-by-example/flow_control/if_let.html
|
||||||
|
|
Loading…
Reference in a new issue