summaryrefslogtreecommitdiff
path: root/exercises/17_tests
diff options
context:
space:
mode:
authorAdam Brewer <adamhb321@gmail.com>2023-10-16 07:37:12 -0400
committerAdam Brewer <adamhb321@gmail.com>2023-10-16 07:37:12 -0400
commit64d95837e9813541cf5b357de13865ce687ae98d (patch)
treef022c5d5ba01128811c0b77618a7adb843ee876b /exercises/17_tests
parentc3941323e2c0b9ee286494327de92e00f23b9e3a (diff)
Update Exercises Directory Names to Reflect Order
Diffstat (limited to 'exercises/17_tests')
-rw-r--r--exercises/17_tests/README.md7
-rw-r--r--exercises/17_tests/tests1.rs21
-rw-r--r--exercises/17_tests/tests2.rs17
-rw-r--r--exercises/17_tests/tests3.rs29
-rw-r--r--exercises/17_tests/tests4.rs48
5 files changed, 122 insertions, 0 deletions
diff --git a/exercises/17_tests/README.md b/exercises/17_tests/README.md
new file mode 100644
index 0000000..27c6818
--- /dev/null
+++ b/exercises/17_tests/README.md
@@ -0,0 +1,7 @@
+# Tests
+
+Going out of order from the book to cover tests -- many of the following exercises will ask you to make tests pass!
+
+## Further information
+
+- [Writing Tests](https://doc.rust-lang.org/book/ch11-01-writing-tests.html)
diff --git a/exercises/17_tests/tests1.rs b/exercises/17_tests/tests1.rs
new file mode 100644
index 0000000..810277a
--- /dev/null
+++ b/exercises/17_tests/tests1.rs
@@ -0,0 +1,21 @@
+// tests1.rs
+//
+// 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!
+//
+// Execute `rustlings hint tests1` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn you_can_assert() {
+ assert!();
+ }
+}
diff --git a/exercises/17_tests/tests2.rs b/exercises/17_tests/tests2.rs
new file mode 100644
index 0000000..f8024e9
--- /dev/null
+++ b/exercises/17_tests/tests2.rs
@@ -0,0 +1,17 @@
+// tests2.rs
+//
+// This test has a problem with it -- make the test compile! Make the test pass!
+// Make the test fail!
+//
+// Execute `rustlings hint tests2` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+#[cfg(test)]
+mod tests {
+ #[test]
+ fn you_can_assert_eq() {
+ assert_eq!();
+ }
+}
diff --git a/exercises/17_tests/tests3.rs b/exercises/17_tests/tests3.rs
new file mode 100644
index 0000000..4013e38
--- /dev/null
+++ b/exercises/17_tests/tests3.rs
@@ -0,0 +1,29 @@
+// tests3.rs
+//
+// This test isn't testing our function -- make it do that in such a way that
+// the test passes. Then write a second test that tests whether we get the
+// result we expect to get when we call `is_even(5)`.
+//
+// Execute `rustlings hint tests3` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+pub fn is_even(num: i32) -> bool {
+ num % 2 == 0
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn is_true_when_even() {
+ assert!();
+ }
+
+ #[test]
+ fn is_false_when_odd() {
+ assert!();
+ }
+}
diff --git a/exercises/17_tests/tests4.rs b/exercises/17_tests/tests4.rs
new file mode 100644
index 0000000..935d0db
--- /dev/null
+++ b/exercises/17_tests/tests4.rs
@@ -0,0 +1,48 @@
+// tests4.rs
+//
+// Make sure that we're testing for the correct conditions!
+//
+// Execute `rustlings hint tests4` or use the `hint` watch subcommand for a
+// hint.
+
+// I AM NOT DONE
+
+struct Rectangle {
+ width: i32,
+ height: i32
+}
+
+impl Rectangle {
+ // Only change the test functions themselves
+ pub fn new(width: i32, height: i32) -> Self {
+ if width <= 0 || height <= 0 {
+ panic!("Rectangle width and height cannot be negative!")
+ }
+ Rectangle {width, height}
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn correct_width_and_height() {
+ // This test should check if the rectangle is the size that we pass into its constructor
+ let rect = Rectangle::new(10, 20);
+ assert_eq!(???, 10); // check width
+ assert_eq!(???, 20); // check height
+ }
+
+ #[test]
+ fn negative_width() {
+ // This test should check if program panics when we try to create rectangle with negative width
+ let _rect = Rectangle::new(-10, 10);
+ }
+
+ #[test]
+ fn negative_height() {
+ // This test should check if program panics when we try to create rectangle with negative height
+ let _rect = Rectangle::new(10, -10);
+ }
+}