Index: ui/gfx/geometry/rect_unittest.cc |
diff --git a/ui/gfx/geometry/rect_unittest.cc b/ui/gfx/geometry/rect_unittest.cc |
index 00a9677f0410f4fc42104f4ae70e6b2c89d365ac..edc95ea2fe0ad680d3e199d08eee8daa7b88b9cb 100644 |
--- a/ui/gfx/geometry/rect_unittest.cc |
+++ b/ui/gfx/geometry/rect_unittest.cc |
@@ -910,4 +910,47 @@ TEST(RectTest, ManhattanInternalDistance) { |
f.ManhattanInternalDistance(gfx::RectF(-1.5f, 0.0f, 1.5f, 1.0f))); |
} |
+TEST(RectTest, SafelyScaleToEnclosingRect) { |
+ { |
+ Rect input(1, 2, 3, 4); |
+ Rect result = SafelyScaleToEnclosingRect(input, 5.f); |
+ EXPECT_EQ(Rect(5, 10, 15, 20), result); |
+ } |
+ { |
+ Rect input(-1, -2, 3, 4); |
+ Rect result = SafelyScaleToEnclosingRect(input, 0.5f); |
+ EXPECT_EQ(Rect(-1, -1, 2, 2), result); |
+ } |
+ { |
+ Rect input(0, 0, std::numeric_limits<int>::max() / 2, |
+ std::numeric_limits<int>::max()); |
+ Rect result = SafelyScaleToEnclosingRect(input, 2.f); |
+ EXPECT_EQ(Rect(0, 0, std::numeric_limits<int>::max(), |
+ std::numeric_limits<int>::max()), |
+ result); |
+ } |
+ { |
+ Rect input(std::numeric_limits<int>::min() / 2, |
+ std::numeric_limits<int>::min() / 2, |
+ std::numeric_limits<int>::max(), |
+ std::numeric_limits<int>::max()); |
+ Rect result = SafelyScaleToEnclosingRect(input, 2.f); |
+ EXPECT_EQ( |
+ Rect(std::numeric_limits<int>::min(), std::numeric_limits<int>::min(), |
+ std::numeric_limits<int>::max(), std::numeric_limits<int>::max()), |
+ result); |
+ } |
+ { |
+ Rect input(std::numeric_limits<int>::max() / 2, |
+ std::numeric_limits<int>::max() / 2, |
+ std::numeric_limits<int>::max(), |
+ std::numeric_limits<int>::max()); |
+ Rect result = SafelyScaleToEnclosingRect(input, 2.f); |
+ EXPECT_EQ(Rect(std::numeric_limits<int>::max(), |
+ std::numeric_limits<int>::max(), 0, 0), |
+ result); |
+ } |
+} |
+ |
+ |
} // namespace gfx |