Index: ui/gfx/geometry/rect_unittest.cc |
diff --git a/ui/gfx/geometry/rect_unittest.cc b/ui/gfx/geometry/rect_unittest.cc |
index be4b462073671ccef217627f2c6977be5299ff08..78c3ead33f19f589bdadb17b7fd89dcc4f2e55d6 100644 |
--- a/ui/gfx/geometry/rect_unittest.cc |
+++ b/ui/gfx/geometry/rect_unittest.cc |
@@ -915,4 +915,26 @@ TEST(RectTest, ManhattanInternalDistance) { |
f.ManhattanInternalDistance(gfx::RectF(-1.5f, 0.0f, 1.5f, 1.0f))); |
} |
+TEST(RectTest, MaxDistanceToCorners) { |
+ const float kAbsError = 0.01f; |
+ // Rect with the following corners in clockwise order starting at the origin: |
+ // (10, 30), (60, 30), (10, 100), (60, 100) |
+ const Rect rect(10, 30, 50, 70); |
+ |
+ // Interior points |
+ EXPECT_NEAR(78.10f, rect.MaxDistanceToCorners(gfx::Point(10, 40)), kAbsError); |
+ EXPECT_NEAR(71.06f, rect.MaxDistanceToCorners(gfx::Point(55, 45)), kAbsError); |
+ EXPECT_NEAR(64.03f, rect.MaxDistanceToCorners(gfx::Point(50, 80)), kAbsError); |
+ EXPECT_NEAR(68.01f, rect.MaxDistanceToCorners(gfx::Point(20, 85)), kAbsError); |
+ |
+ // Exterior points |
+ EXPECT_NEAR(110.79f, rect.MaxDistanceToCorners(gfx::Point(3, 5)), kAbsError); |
+ EXPECT_NEAR(108.17f, rect.MaxDistanceToCorners(gfx::Point(70, 10)), |
+ kAbsError); |
+ EXPECT_NEAR(103.08f, rect.MaxDistanceToCorners(gfx::Point(75, 110)), |
+ kAbsError); |
+ EXPECT_NEAR(101.24f, rect.MaxDistanceToCorners(gfx::Point(5, 115)), |
+ kAbsError); |
+} |
+ |
} // namespace gfx |