summaryrefslogtreecommitdiff
path: root/exercises/11_hashmaps/hashmaps2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/11_hashmaps/hashmaps2.rs')
-rw-r--r--exercises/11_hashmaps/hashmaps2.rs17
1 files changed, 14 insertions, 3 deletions
diff --git a/exercises/11_hashmaps/hashmaps2.rs b/exercises/11_hashmaps/hashmaps2.rs
index a592569..ab918cd 100644
--- a/exercises/11_hashmaps/hashmaps2.rs
+++ b/exercises/11_hashmaps/hashmaps2.rs
@@ -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);
}
}