summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemo Senekowitsch <remo@buenzli.dev>2024-09-14 09:48:26 +0200
committerRemo Senekowitsch <remo@buenzli.dev>2024-09-14 10:03:52 +0200
commitb540c6df253c1f528486bf4245da8eec66710684 (patch)
treec02d85fd202636f0dd1d72d2e7aaf6816b11659c
parent47f8a0cbe502654ec09a6865cc82fe9330580ce1 (diff)
Make if2 less confusing
Some people would get stuck on this exercise, trying to understand the meaning behind foo, fuzz, baz etc. Making the theme of the code make a little more sense to humans should hopefully prevent people from getting confused by abstract and non-sensical tests.
-rw-r--r--exercises/03_if/if2.rs22
-rw-r--r--solutions/03_if/if2.rs26
2 files changed, 26 insertions, 22 deletions
diff --git a/exercises/03_if/if2.rs b/exercises/03_if/if2.rs
index 593a77a..10037f2 100644
--- a/exercises/03_if/if2.rs
+++ b/exercises/03_if/if2.rs
@@ -1,7 +1,7 @@
// TODO: Fix the compiler error on this function.
-fn foo_if_fizz(fizzish: &str) -> &str {
- if fizzish == "fizz" {
- "foo"
+fn picky_eater(food: &str) -> &str {
+ if food == "strawberry" {
+ "Yummy!"
} else {
1
}
@@ -18,18 +18,20 @@ mod tests {
use super::*;
#[test]
- fn foo_for_fizz() {
- // This means that calling `foo_if_fizz` with the argument "fizz" should return "foo".
- assert_eq!(foo_if_fizz("fizz"), "foo");
+ fn yummy_food() {
+ // This means that calling `picky_eater` with the argument "food" should return "Yummy!".
+ assert_eq!(picky_eater("strawberry"), "Yummy!");
}
#[test]
- fn bar_for_fuzz() {
- assert_eq!(foo_if_fizz("fuzz"), "bar");
+ fn neutral_food() {
+ assert_eq!(picky_eater("potato"), "I guess I can eat that.");
}
#[test]
- fn default_to_baz() {
- assert_eq!(foo_if_fizz("literally anything"), "baz");
+ fn default_disliked_food() {
+ assert_eq!(picky_eater("broccoli"), "No thanks!");
+ assert_eq!(picky_eater("gummy bears"), "No thanks!");
+ assert_eq!(picky_eater("literally anything"), "No thanks!");
}
}
diff --git a/solutions/03_if/if2.rs b/solutions/03_if/if2.rs
index 440bba0..21c0dcd 100644
--- a/solutions/03_if/if2.rs
+++ b/solutions/03_if/if2.rs
@@ -1,10 +1,10 @@
-fn foo_if_fizz(fizzish: &str) -> &str {
- if fizzish == "fizz" {
- "foo"
- } else if fizzish == "fuzz" {
- "bar"
+fn picky_eater(food: &str) -> &str {
+ if food == "strawberry" {
+ "Yummy!"
+ } else if food == "potato" {
+ "I guess I can eat that."
} else {
- "baz"
+ "No thanks!"
}
}
@@ -17,17 +17,19 @@ mod tests {
use super::*;
#[test]
- fn foo_for_fizz() {
- assert_eq!(foo_if_fizz("fizz"), "foo");
+ fn yummy_food() {
+ assert_eq!(picky_eater("strawberry"), "Yummy!");
}
#[test]
- fn bar_for_fuzz() {
- assert_eq!(foo_if_fizz("fuzz"), "bar");
+ fn neutral_food() {
+ assert_eq!(picky_eater("potato"), "I guess I can eat that.");
}
#[test]
- fn default_to_baz() {
- assert_eq!(foo_if_fizz("literally anything"), "baz");
+ fn default_disliked_food() {
+ assert_eq!(picky_eater("broccoli"), "No thanks!");
+ assert_eq!(picky_eater("gummy bears"), "No thanks!");
+ assert_eq!(picky_eater("literally anything"), "No thanks!");
}
}