Fix all_fruits_types_in_basket to fail if all fruit kinds are not included

This commit is contained in:
Daniel Somerfield 2023-11-21 14:02:26 -08:00
parent 14e423fe53
commit 8bfe2ec71e

View file

@ -18,7 +18,7 @@
use std::collections::HashMap;
#[derive(Hash, PartialEq, Eq)]
#[derive(Hash, PartialEq, Eq, Debug)]
enum Fruit {
Apple,
Banana,
@ -27,6 +27,14 @@ enum Fruit {
Pineapple,
}
const FRUIT_KINDS: [Fruit; 5] = [
Fruit::Apple,
Fruit::Banana,
Fruit::Mango,
Fruit::Lychee,
Fruit::Pineapple,
];
fn fruit_basket(basket: &mut HashMap<Fruit, u32>) {
let fruit_kinds = vec![
Fruit::Apple,
@ -81,12 +89,15 @@ mod tests {
let count = basket.values().sum::<u32>();
assert!(count > 11);
}
#[test]
fn all_fruit_types_in_basket() {
let mut basket = get_fruit_basket();
fruit_basket(&mut basket);
for amount in basket.values() {
for fruit_kind in FRUIT_KINDS {
let amount = basket
.get(&fruit_kind)
.expect(format!("Fruit kind {:?} was not found in basket", fruit_kind).as_str());
assert_ne!(amount, &0);
}
}