mod shapes; use shapes::{Rectangle, Shape, Triangle}; fn area(shape: &Shape) -> i32 { match shape { Shape::Rectangle(rectangle) => rectangle.width * rectangle.height, Shape::Triangle(triangle) => triangle.width * triangle.height / 2, } } #[cfg(test)] mod test { use super::shapes::{Rectangle, Shape, Triangle}; #[test] fn rectangle() { let rectangle = Shape::Rectangle(Rectangle { width: 10, height: 25 }); let area = super::area(&rectangle); assert_eq!(area, 250); } #[test] fn triangle() { let triangle = Shape::Triangle(Triangle { width: 10, height: 25 }); let area = super::area(&triangle); assert_eq!(area, 125); } }