summaryrefslogtreecommitdiff
path: root/exercises/17_tests/tests4.rs
diff options
context:
space:
mode:
Diffstat (limited to 'exercises/17_tests/tests4.rs')
-rw-r--r--exercises/17_tests/tests4.rs48
1 files changed, 48 insertions, 0 deletions
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);
+ }
+}