summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Story <wrobstory@gmail.com>2020-04-30 21:17:17 -0700
committerRob Story <wrobstory@gmail.com>2020-05-02 13:02:16 -0700
commit1da84b5f7c489f65bd683c244f13c7d1ee812df0 (patch)
tree87c29bafa7126703b26452a0103f58505ce943bb
parentebfe76cdb69f67a2d81d51785992ad00e8ddbeda (diff)
feat: Add if2 exercise
-rw-r--r--exercises/if/if2.rs36
-rw-r--r--info.toml9
2 files changed, 45 insertions, 0 deletions
diff --git a/exercises/if/if2.rs b/exercises/if/if2.rs
new file mode 100644
index 0000000..80effbd
--- /dev/null
+++ b/exercises/if/if2.rs
@@ -0,0 +1,36 @@
+// if2.rs
+
+// Step 1: Make me compile!
+// Step 2: Get the bar_for_fuzz and default_to_baz tests passing!
+// Execute the command `rustlings hint if2` if you want a hint :)
+
+// I AM NOT DONE
+
+pub fn fizz_if_foo(fizzish: &str) -> &str {
+ if fizzish == "fizz" {
+ "foo"
+ } else {
+ 1
+ }
+}
+
+// No test changes needed!
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn foo_for_fizz() {
+ assert_eq!(fizz_if_foo("fizz"), "foo")
+ }
+
+ #[test]
+ fn bar_for_fuzz() {
+ assert_eq!(fizz_if_foo("fuzz"), "bar")
+ }
+
+ #[test]
+ fn default_to_baz() {
+ assert_eq!(fizz_if_foo("literally anything"), "baz")
+ }
+}
diff --git a/info.toml b/info.toml
index d7374ab..e852ad0 100644
--- a/info.toml
+++ b/info.toml
@@ -87,6 +87,15 @@ Remember in Rust that:
- `if`/`else` conditionals are expressions
- Each condition is followed by a `{}` block."""
+[[exercises]]
+name = "if2"
+path = "exercises/if/if2.rs"
+mode = "test"
+hint = """
+For that first compiler error, it's important in Rust that each conditional
+block return the same type! To get the tests passing, you will need a couple
+conditions checking different input values."""
+
# FUNCTIONS
[[exercises]]