summaryrefslogtreecommitdiff
path: root/exercises/if
diff options
context:
space:
mode:
authorJoshua Carlson <jrcarl624@gmail.com>2023-07-03 14:52:13 -0400
committerJoshua Carlson <jrcarl624@gmail.com>2023-07-03 14:52:13 -0400
commit287172698aea106723682542e011b64f3d6d218a (patch)
tree627d49750b2bcd61abedad847ef3d8bb7eda9897 /exercises/if
parentc5b0627180ae98c41f67e345b2a16ca14a6cffd1 (diff)
added if3 based on: `Using if in a let Statement`
Diffstat (limited to 'exercises/if')
-rw-r--r--exercises/if/if3.rs55
1 files changed, 55 insertions, 0 deletions
diff --git a/exercises/if/if3.rs b/exercises/if/if3.rs
new file mode 100644
index 0000000..73a7025
--- /dev/null
+++ b/exercises/if/if3.rs
@@ -0,0 +1,55 @@
+// if3.rs
+//
+// Execute `rustlings hint if3` or use the `hint` watch subcommand for a hint.
+
+// I AM NOT DONE
+
+pub fn animal_habitat(animal: &str) -> &'static str {
+ let identifier = if animal == "crab" {
+ 1
+ } else if animal == "gopher" {
+ 2.0
+ } else if animal == "snake" {
+ 3
+ } else {
+ "Unknown"
+ };
+
+ // DO NOT CHANGE THIS STATEMENT BELOW
+ let habitat = if identifier == 1 {
+ "Beach"
+ } else if identifier == 2 {
+ "Burrow"
+ } else if identifier == 3 {
+ "Desert"
+ } else {
+ "Unknown"
+ };
+
+ habitat
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn gopher_lives_in_burrow() {
+ assert_eq!(animal_habitat("gopher"), "Burrow")
+ }
+
+ #[test]
+ fn snake_lives_in_desert() {
+ assert_eq!(animal_habitat("snake"), "Desert")
+ }
+
+ #[test]
+ fn crab_lives_on_beach() {
+ assert_eq!(animal_habitat("crab"), "Beach")
+ }
+
+ #[test]
+ fn unknown_animal() {
+ assert_eq!(animal_habitat("dinosaur"), "Unknown")
+ }
+}