From de30d02b90ce2db13a152390fd4bce31d67d0318 Mon Sep 17 00:00:00 2001 From: Mason Chang Date: Wed, 12 Apr 2017 17:27:23 -0700 Subject: [PATCH] Typed rects with negative sizes should return as an empty rect --- src/rect.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/rect.rs b/src/rect.rs index 6d759b1..1accf6c 100644 --- a/src/rect.rs +++ b/src/rect.rs @@ -277,7 +277,7 @@ impl TypedRect { } } -impl TypedRect { +impl TypedRect { /// Constructor, setting all sides to zero. pub fn zero() -> TypedRect { TypedRect::new( @@ -288,7 +288,7 @@ impl TypedRect { /// Returns true if the size is zero, regardless of the origin's value. pub fn is_empty(&self) -> bool { - self.size.width == Zero::zero() || self.size.height == Zero::zero() + self.size.width <= Zero::zero() || self.size.height <= Zero::zero() } } @@ -636,6 +636,8 @@ mod tests { assert!(Rect::new(Point2D::new(10u32, 10u32), Size2D::new(10u32, 0u32)).is_empty()); assert!(Rect::new(Point2D::new(10u32, 10u32), Size2D::new(0u32, 10u32)).is_empty()); assert!(!Rect::new(Point2D::new(10u32, 10u32), Size2D::new(1u32, 1u32)).is_empty()); + assert!(Rect::new(Point2D::new(10i32, 10i32), Size2D::new(-10i32, 10i32)).is_empty()); + assert!(Rect::new(Point2D::new(10i32, 10i32), Size2D::new(10i32, -10i32)).is_empty()); } #[test]