summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-06-27 16:29:03 +0200
committermo8it <mo8it@proton.me>2024-06-27 16:29:03 +0200
commita4f8826301c793180d94e891603fab22e9492f5c (patch)
tree65d56048f1f0d864bd0cd44818b5d88d5aacd1d0
parent61872166067ab83fbad87e55c562e28d98368bff (diff)
tests1 solution
-rw-r--r--exercises/17_tests/tests1.rs15
-rw-r--r--rustlings-macros/info.toml3
-rw-r--r--solutions/17_tests/tests1.rs25
3 files changed, 34 insertions, 9 deletions
diff --git a/exercises/17_tests/tests1.rs b/exercises/17_tests/tests1.rs
index 854a135..7529f9f 100644
--- a/exercises/17_tests/tests1.rs
+++ b/exercises/17_tests/tests1.rs
@@ -1,9 +1,9 @@
// Tests are important to ensure that your code does what you think it should
-// do. Tests can be run on this file with the following command: rustlings run
-// tests1
-//
-// This test has a problem with it -- make the test compile! Make the test pass!
-// Make the test fail!
+// do.
+
+fn is_even(n: i64) -> bool {
+ n % 2 == 0
+}
fn main() {
// You can optionally experiment here.
@@ -11,8 +11,13 @@ fn main() {
#[cfg(test)]
mod tests {
+ // TODO: Import `is_even`. You can use a wildcard to import everything in
+ // the outer module.
+
#[test]
fn you_can_assert() {
+ // TODO: Test the function `is_even` with some values.
+ assert!();
assert!();
}
}
diff --git a/rustlings-macros/info.toml b/rustlings-macros/info.toml
index f0e34a5..27ed6b9 100644
--- a/rustlings-macros/info.toml
+++ b/rustlings-macros/info.toml
@@ -851,9 +851,6 @@ hint = """Let the compiler guide you :)"""
name = "tests1"
dir = "17_tests"
hint = """
-You don't even need to write any code to test -- you can just test values and
-run that, even though you wouldn't do that in real life. :)
-
`assert!` is a macro that needs an argument. Depending on the value of the
argument, `assert!` will do nothing (in which case the test will pass) or
`assert!` will panic (in which case the test will fail).
diff --git a/solutions/17_tests/tests1.rs b/solutions/17_tests/tests1.rs
index 4e18198..c52b8b1 100644
--- a/solutions/17_tests/tests1.rs
+++ b/solutions/17_tests/tests1.rs
@@ -1 +1,24 @@
-// Solutions will be available before the stable release. Thank you for testing the beta version 🥰
+// Tests are important to ensure that your code does what you think it should
+// do.
+
+fn is_even(n: i64) -> bool {
+ n % 2 == 0
+}
+
+fn main() {
+ // You can optionally experiment here.
+}
+
+#[cfg(test)]
+mod tests {
+ // When writing unit tests, it is common to import everything from the outer
+ // module (`super`) using a wildcard.
+ use super::*;
+
+ #[test]
+ fn you_can_assert() {
+ assert!(is_even(0));
+ assert!(!is_even(-1));
+ // ^ You can assert `false` using the negation operator `!`.
+ }
+}