e8122daa87
Added extra test for before 10PM and updated the test for at 10PM (when it's 10PM there should already not be any ice cream left, as per the description). Also fixed the `raw_value` test, as it is later than 10PM, so there should be no more ice cream left.
36 lines
1 KiB
Rust
36 lines
1 KiB
Rust
// options1.rs
|
|
// Execute `rustlings hint options1` or use the `hint` watch subcommand for a hint.
|
|
|
|
// I AM NOT DONE
|
|
|
|
// This function returns how much icecream there is left in the fridge.
|
|
// If it's before 10PM, there's 5 pieces left. At 10PM, someone eats them
|
|
// all, so there'll be no more left :(
|
|
// TODO: Return an Option!
|
|
fn maybe_icecream(time_of_day: u16) -> Option<u16> {
|
|
// We use the 24-hour system here, so 10PM is a value of 22
|
|
// The Option output should gracefully handle cases where time_of_day > 24.
|
|
???
|
|
}
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn check_icecream() {
|
|
assert_eq!(maybe_icecream(9), Some(5));
|
|
assert_eq!(maybe_icecream(10), Some(0));
|
|
assert_eq!(maybe_icecream(23), Some(0));
|
|
assert_eq!(maybe_icecream(22), Some(0));
|
|
assert_eq!(maybe_icecream(25), None);
|
|
}
|
|
|
|
#[test]
|
|
fn raw_value() {
|
|
// TODO: Fix this test. How do you get at the value contained in the Option?
|
|
let icecreams = maybe_icecream(12);
|
|
assert_eq!(icecreams, 0);
|
|
}
|
|
}
|