rustlings/exercises/17_tests/tests4.rs

46 lines
1.1 KiB
Rust
Raw Normal View History

// Make sure that we're testing for the correct conditions!
2023-04-05 07:18:51 +01:00
struct Rectangle {
width: i32,
height: i32,
2023-04-05 07:18:51 +01:00
}
impl Rectangle {
// Only change the test functions themselves
2023-04-05 07:18:51 +01:00
pub fn new(width: i32, height: i32) -> Self {
if width <= 0 || height <= 0 {
2023-04-05 07:18:51 +01:00
panic!("Rectangle width and height cannot be negative!")
}
Rectangle { width, height }
2023-04-05 07:18:51 +01:00
}
}
fn main() {
// You can optionally experiment here.
}
2023-04-05 07:18:51 +01:00
#[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
2023-04-05 07:18:51 +01:00
}
#[test]
fn negative_width() {
// This test should check if program panics when we try to create rectangle with negative width
2023-04-05 07:18:51 +01:00
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
2023-04-05 07:18:51 +01:00
let _rect = Rectangle::new(10, -10);
}
}