Remove tests3 and add solution to tests4

This commit is contained in:
mo8it
2024-06-27 17:29:33 +02:00
parent 803e32dad2
commit 746cf6863d
6 changed files with 83 additions and 71 deletions
+32 -9
View File
@@ -1,9 +1,19 @@
// 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)`.
struct Rectangle {
width: i32,
height: i32,
}
fn is_even(num: i32) -> bool {
num % 2 == 0
impl Rectangle {
// Don't change this function.
fn new(width: i32, height: i32) -> Self {
if width <= 0 || height <= 0 {
// Returning a `Result` would be better here. But we want to learn
// how to test functions that can panic.
panic!("Rectangle width and height can't be negative");
}
Rectangle { width, height }
}
}
fn main() {
@@ -15,12 +25,25 @@ mod tests {
use super::*;
#[test]
fn is_true_when_even() {
assert!();
fn correct_width_and_height() {
// TODO: This test should check if the rectangle has the size that we
// pass to its constructor.
let rect = Rectangle::new(10, 20);
assert_eq!(???, 10); // Check width
assert_eq!(???, 20); // Check height
}
// TODO: This test should check if the program panics when we try to create
// a rectangle with negative width.
#[test]
fn is_false_when_odd() {
assert!();
fn negative_width() {
let _rect = Rectangle::new(-10, 10);
}
// TODO: This test should check if the program panics when we try to create
// a rectangle with negative height.
#[test]
fn negative_height() {
let _rect = Rectangle::new(10, -10);
}
}