summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo8it <mo8it@proton.me>2024-06-27 16:40:26 +0200
committermo8it <mo8it@proton.me>2024-06-27 16:40:26 +0200
commit803e32dad2395d309b74b9fde6b9e08577cf8a0a (patch)
tree6f0e5c6a2a5fea5c89d52e02b7c5143b9dea7c38
parenta4f8826301c793180d94e891603fab22e9492f5c (diff)
tests2 solution
-rw-r--r--exercises/17_tests/tests2.rs13
-rw-r--r--rustlings-macros/info.toml6
-rw-r--r--solutions/17_tests/tests2.rs23
3 files changed, 34 insertions, 8 deletions
diff --git a/exercises/17_tests/tests2.rs b/exercises/17_tests/tests2.rs
index f0899e1..0c6573e 100644
--- a/exercises/17_tests/tests2.rs
+++ b/exercises/17_tests/tests2.rs
@@ -1,5 +1,8 @@
-// This test has a problem with it -- make the test compile! Make the test pass!
-// Make the test fail!
+// Calculates the power of 2 using a bit shift.
+// `1 << n` is equivalent to "2 to the power of n".
+fn power_of_2(n: u8) -> u64 {
+ 1 << n
+}
fn main() {
// You can optionally experiment here.
@@ -7,8 +10,14 @@ fn main() {
#[cfg(test)]
mod tests {
+ use super::*;
+
#[test]
fn you_can_assert_eq() {
+ // TODO: Test the function `power_of_2` with some values.
+ assert_eq!();
+ assert_eq!();
+ assert_eq!();
assert_eq!();
}
}
diff --git a/rustlings-macros/info.toml b/rustlings-macros/info.toml
index 27ed6b9..4fd2bd8 100644
--- a/rustlings-macros/info.toml
+++ b/rustlings-macros/info.toml
@@ -862,13 +862,9 @@ ones pass, and which ones fail :)"""
name = "tests2"
dir = "17_tests"
hint = """
-Like the previous exercise, you don't need to write any code to get this test
-to compile and run.
-
`assert_eq!` is a macro that takes two arguments and compares them. Try giving
it two values that are equal! Try giving it two arguments that are different!
-Try giving it two values that are of different types! Try switching which
-argument comes first and which comes second!"""
+Try switching which argument comes first and which comes second!"""
[[exercises]]
name = "tests3"
diff --git a/solutions/17_tests/tests2.rs b/solutions/17_tests/tests2.rs
index 4e18198..39a0005 100644
--- a/solutions/17_tests/tests2.rs
+++ b/solutions/17_tests/tests2.rs
@@ -1 +1,22 @@
-// Solutions will be available before the stable release. Thank you for testing the beta version 🥰
+// Calculates the power of 2 using a bit shift.
+// `1 << n` is equivalent to "2 to the power of n".
+fn power_of_2(n: u8) -> u64 {
+ 1 << n
+}
+
+fn main() {
+ // You can optionally experiment here.
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn you_can_assert_eq() {
+ assert_eq!(power_of_2(0), 1);
+ assert_eq!(power_of_2(1), 2);
+ assert_eq!(power_of_2(2), 4);
+ assert_eq!(power_of_2(3), 8);
+ }
+}