Index: third_party/WebKit/Source/platform/geometry/FloatRectTest.cpp |
diff --git a/third_party/WebKit/Source/platform/geometry/FloatRectTest.cpp b/third_party/WebKit/Source/platform/geometry/FloatRectTest.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a2b37f28c63a99e282f05ce33cecbe6e437097f9 |
--- /dev/null |
+++ b/third_party/WebKit/Source/platform/geometry/FloatRectTest.cpp |
@@ -0,0 +1,114 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "platform/geometry/FloatRect.h" |
+ |
+#include "platform/geometry/FloatPoint.h" |
+#include "platform/geometry/GeometryTestHelpers.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+ |
+namespace blink { |
+ |
+TEST(FloatRectTest, SquaredDistanceToTest) |
+{ |
+ |
+ // |
+ // O--x |
+ // | |
+ // y |
+ // |
+ // FloatRect.x() FloatRect.maxX() |
+ // | | |
+ // 1 | 2 | 3 |
+ // ======+==========+====== --FloatRect.y() |
+ // 4 | 5(in) | 6 |
+ // ======+==========+====== --FloatRect.maxY() |
+ // 7 | 8 | 9 |
+ // |
+ |
+ FloatRect r1(100, 100, 250, 150); |
+ |
+ // `1` case |
+ FloatPoint p1(80, 80); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p1), 800.f); |
+ |
+ FloatPoint p2(-10, -10); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p2), 24200.f); |
+ |
+ FloatPoint p3(80, -10); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p3), 12500.f); |
+ |
+ // `2` case |
+ FloatPoint p4(110, 80); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p4), 400.f); |
+ |
+ FloatPoint p5(150, 0); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p5), 10000.f); |
+ |
+ FloatPoint p6(180, -10); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p6), 12100.f); |
+ |
+ // `3` case |
+ FloatPoint p7(400, 80); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p7), 2900.f); |
+ |
+ FloatPoint p8(360, -10); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p8), 12200.f); |
+ |
+ // `4` case |
+ FloatPoint p9(80, 110); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p9), 400.f); |
+ |
+ FloatPoint p10(-10, 180); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p10), 12100.f); |
+ |
+ // `5`(& In) case |
+ FloatPoint p11(100, 100); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p11), 0.f); |
+ |
+ FloatPoint p12(150, 100); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p12), 0.f); |
+ |
+ FloatPoint p13(350, 100); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p13), 0.f); |
+ |
+ FloatPoint p14(350, 150); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p14), 0.f); |
+ |
+ FloatPoint p15(350, 250); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p15), 0.f); |
+ |
+ FloatPoint p16(150, 250); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p16), 0.f); |
+ |
+ FloatPoint p17(100, 250); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p17), 0.f); |
+ |
+ FloatPoint p18(100, 150); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p18), 0.f); |
+ |
+ FloatPoint p19(150, 150); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p19), 0.f); |
+ |
+ // `6` case |
+ FloatPoint p20(380, 150); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p20), 900.f); |
+ |
+ // `7` case |
+ FloatPoint p21(80, 280); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p21), 1300.f); |
+ |
+ FloatPoint p22(-10, 300); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p22), 14600.f); |
+ |
+ // `8` case |
+ FloatPoint p23(180, 300); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p23), 2500.f); |
+ |
+ // `9` case |
+ FloatPoint p24(450, 450); |
+ EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.squaredDistanceTo(p24), 50000.f); |
+} |
+ |
+} // namespace blink |