OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include "platform/geometry/FloatRect.h" |
| 6 |
| 7 #include "platform/geometry/FloatPoint.h" |
| 8 #include "platform/geometry/GeometryTestHelpers.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 |
| 11 namespace blink { |
| 12 |
| 13 TEST(FloatRectTest, DistanceTest) |
| 14 { |
| 15 |
| 16 // |
| 17 // O--x |
| 18 // | |
| 19 // y |
| 20 // |
| 21 // FloatRect.x() FloatRect.maxX() |
| 22 // | | |
| 23 // 1 | 2 | 3 |
| 24 // ======+==========+====== --FloatRect.y() |
| 25 // 4 | 5(in) | 6 |
| 26 // ======+==========+====== --FloatRect.maxY() |
| 27 // 7 | 8 | 9 |
| 28 // |
| 29 |
| 30 FloatRect r1(100, 100, 250, 150); |
| 31 |
| 32 // `1` case |
| 33 FloatPoint p1(80, 80); |
| 34 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p1), 800.
f); |
| 35 |
| 36 FloatPoint p2(-10, -10); |
| 37 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p2), 2420
0.f); |
| 38 |
| 39 FloatPoint p3(80, -10); |
| 40 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p3), 1250
0.f); |
| 41 |
| 42 // `2` case |
| 43 FloatPoint p4(110, 80); |
| 44 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p4), 400.
f); |
| 45 |
| 46 FloatPoint p5(150, 0); |
| 47 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p5), 1000
0.f); |
| 48 |
| 49 FloatPoint p6(180, -10); |
| 50 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p6), 1210
0.f); |
| 51 |
| 52 // `3` case |
| 53 FloatPoint p7(400, 80); |
| 54 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p7), 2900
.f); |
| 55 |
| 56 FloatPoint p8(360, -10); |
| 57 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p8), 1220
0.f); |
| 58 |
| 59 // `4` case |
| 60 FloatPoint p9(80, 110); |
| 61 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p9), 400.
f); |
| 62 |
| 63 FloatPoint p10(-10, 180); |
| 64 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p10), 121
00.f); |
| 65 |
| 66 // `5`(& In) case |
| 67 FloatPoint p11(100, 100); |
| 68 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p11), 0.f
); |
| 69 |
| 70 FloatPoint p12(150, 100); |
| 71 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p12), 0.f
); |
| 72 |
| 73 FloatPoint p13(350, 100); |
| 74 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p13), 0.f
); |
| 75 |
| 76 FloatPoint p14(350, 150); |
| 77 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p14), 0.f
); |
| 78 |
| 79 FloatPoint p15(350, 250); |
| 80 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p15), 0.f
); |
| 81 |
| 82 FloatPoint p16(150, 250); |
| 83 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p16), 0.f
); |
| 84 |
| 85 FloatPoint p17(100, 250); |
| 86 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p17), 0.f
); |
| 87 |
| 88 FloatPoint p18(100, 150); |
| 89 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p18), 0.f
); |
| 90 |
| 91 FloatPoint p19(150, 150); |
| 92 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p19), 0.f
); |
| 93 |
| 94 // `6` case |
| 95 FloatPoint p20(380, 150); |
| 96 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p20), 900
.f); |
| 97 |
| 98 // `7` case |
| 99 FloatPoint p21(80, 280); |
| 100 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p21), 130
0.f); |
| 101 |
| 102 FloatPoint p22(-10, 300); |
| 103 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p22), 146
00.f); |
| 104 |
| 105 // `8` case |
| 106 FloatPoint p23(180, 300); |
| 107 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p23), 250
0.f); |
| 108 |
| 109 // `9` case |
| 110 FloatPoint p24(450, 450); |
| 111 EXPECT_PRED_FORMAT2(GeometryTest::AssertAlmostEqual, r1.distanceTo(p24), 500
00.f); |
| 112 } |
| 113 |
| 114 } // namespace blink |
OLD | NEW |