| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2012 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 "ui/gfx/point_base.h" | |
| 6 | |
| 7 #include "base/basictypes.h" | |
| 8 #include "testing/gtest/include/gtest/gtest.h" | |
| 9 #include "ui/gfx/point.h" | |
| 10 #include "ui/gfx/point_conversions.h" | |
| 11 #include "ui/gfx/point_f.h" | |
| 12 | |
| 13 namespace gfx { | |
| 14 | |
| 15 namespace { | |
| 16 | |
| 17 int TestPointF(const PointF& p) { | |
| 18 return p.x(); | |
| 19 } | |
| 20 | |
| 21 } // namespace | |
| 22 | |
| 23 TEST(PointTest, ToPointF) { | |
| 24 // Check that implicit conversion from integer to float compiles. | |
| 25 Point a(10, 20); | |
| 26 float x = TestPointF(a); | |
| 27 EXPECT_EQ(x, a.x()); | |
| 28 | |
| 29 PointF b(10, 20); | |
| 30 EXPECT_EQ(a, b); | |
| 31 EXPECT_EQ(b, a); | |
| 32 } | |
| 33 | |
| 34 TEST(PointTest, IsOrigin) { | |
| 35 EXPECT_FALSE(Point(1, 0).IsOrigin()); | |
| 36 EXPECT_FALSE(Point(0, 1).IsOrigin()); | |
| 37 EXPECT_FALSE(Point(1, 2).IsOrigin()); | |
| 38 EXPECT_FALSE(Point(-1, 0).IsOrigin()); | |
| 39 EXPECT_FALSE(Point(0, -1).IsOrigin()); | |
| 40 EXPECT_FALSE(Point(-1, -2).IsOrigin()); | |
| 41 EXPECT_TRUE(Point(0, 0).IsOrigin()); | |
| 42 | |
| 43 EXPECT_FALSE(PointF(0.1f, 0).IsOrigin()); | |
| 44 EXPECT_FALSE(PointF(0, 0.1f).IsOrigin()); | |
| 45 EXPECT_FALSE(PointF(0.1f, 2).IsOrigin()); | |
| 46 EXPECT_FALSE(PointF(-0.1f, 0).IsOrigin()); | |
| 47 EXPECT_FALSE(PointF(0, -0.1f).IsOrigin()); | |
| 48 EXPECT_FALSE(PointF(-0.1f, -2).IsOrigin()); | |
| 49 EXPECT_TRUE(PointF(0, 0).IsOrigin()); | |
| 50 } | |
| 51 | |
| 52 TEST(PointTest, VectorArithmetic) { | |
| 53 Point a(1, 5); | |
| 54 Vector2d v1(3, -3); | |
| 55 Vector2d v2(-8, 1); | |
| 56 | |
| 57 static const struct { | |
| 58 Point expected; | |
| 59 Point actual; | |
| 60 } tests[] = { | |
| 61 { Point(4, 2), a + v1 }, | |
| 62 { Point(-2, 8), a - v1 }, | |
| 63 { a, a - v1 + v1 }, | |
| 64 { a, a + v1 - v1 }, | |
| 65 { a, a + Vector2d() }, | |
| 66 { Point(12, 1), a + v1 - v2 }, | |
| 67 { Point(-10, 9), a - v1 + v2 } | |
| 68 }; | |
| 69 | |
| 70 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) | |
| 71 EXPECT_EQ(tests[i].expected.ToString(), tests[i].actual.ToString()); | |
| 72 } | |
| 73 | |
| 74 TEST(PointTest, OffsetFromPoint) { | |
| 75 Point a(1, 5); | |
| 76 Point b(-20, 8); | |
| 77 EXPECT_EQ(Vector2d(-20 - 1, 8 - 5).ToString(), (b - a).ToString()); | |
| 78 } | |
| 79 | |
| 80 TEST(PointTest, ToRoundedPoint) { | |
| 81 EXPECT_EQ(Point(0, 0), ToRoundedPoint(PointF(0, 0))); | |
| 82 EXPECT_EQ(Point(0, 0), ToRoundedPoint(PointF(0.0001f, 0.0001f))); | |
| 83 EXPECT_EQ(Point(0, 0), ToRoundedPoint(PointF(0.4999f, 0.4999f))); | |
| 84 EXPECT_EQ(Point(1, 1), ToRoundedPoint(PointF(0.5f, 0.5f))); | |
| 85 EXPECT_EQ(Point(1, 1), ToRoundedPoint(PointF(0.9999f, 0.9999f))); | |
| 86 | |
| 87 EXPECT_EQ(Point(10, 10), ToRoundedPoint(PointF(10, 10))); | |
| 88 EXPECT_EQ(Point(10, 10), ToRoundedPoint(PointF(10.0001f, 10.0001f))); | |
| 89 EXPECT_EQ(Point(10, 10), ToRoundedPoint(PointF(10.4999f, 10.4999f))); | |
| 90 EXPECT_EQ(Point(11, 11), ToRoundedPoint(PointF(10.5f, 10.5f))); | |
| 91 EXPECT_EQ(Point(11, 11), ToRoundedPoint(PointF(10.9999f, 10.9999f))); | |
| 92 | |
| 93 EXPECT_EQ(Point(-10, -10), ToRoundedPoint(PointF(-10, -10))); | |
| 94 EXPECT_EQ(Point(-10, -10), ToRoundedPoint(PointF(-10.0001f, -10.0001f))); | |
| 95 EXPECT_EQ(Point(-10, -10), ToRoundedPoint(PointF(-10.4999f, -10.4999f))); | |
| 96 EXPECT_EQ(Point(-11, -11), ToRoundedPoint(PointF(-10.5f, -10.5f))); | |
| 97 EXPECT_EQ(Point(-11, -11), ToRoundedPoint(PointF(-10.9999f, -10.9999f))); | |
| 98 } | |
| 99 | |
| 100 TEST(PointTest, Scale) { | |
| 101 EXPECT_EQ(PointF().ToString(), ScalePoint(Point(), 2).ToString()); | |
| 102 EXPECT_EQ(PointF().ToString(), ScalePoint(Point(), 2, 2).ToString()); | |
| 103 | |
| 104 EXPECT_EQ(PointF(2, -2).ToString(), | |
| 105 ScalePoint(Point(1, -1), 2).ToString()); | |
| 106 EXPECT_EQ(PointF(2, -2).ToString(), | |
| 107 ScalePoint(Point(1, -1), 2, 2).ToString()); | |
| 108 | |
| 109 PointF zero; | |
| 110 PointF one(1, -1); | |
| 111 | |
| 112 zero.Scale(2); | |
| 113 zero.Scale(3, 1.5); | |
| 114 | |
| 115 one.Scale(2); | |
| 116 one.Scale(3, 1.5); | |
| 117 | |
| 118 EXPECT_EQ(PointF().ToString(), zero.ToString()); | |
| 119 EXPECT_EQ(PointF(6, -3).ToString(), one.ToString()); | |
| 120 } | |
| 121 | |
| 122 TEST(PointTest, ClampPoint) { | |
| 123 Point a; | |
| 124 | |
| 125 a = Point(3, 5); | |
| 126 EXPECT_EQ(Point(3, 5).ToString(), a.ToString()); | |
| 127 a.SetToMax(Point(2, 4)); | |
| 128 EXPECT_EQ(Point(3, 5).ToString(), a.ToString()); | |
| 129 a.SetToMax(Point(3, 5)); | |
| 130 EXPECT_EQ(Point(3, 5).ToString(), a.ToString()); | |
| 131 a.SetToMax(Point(4, 2)); | |
| 132 EXPECT_EQ(Point(4, 5).ToString(), a.ToString()); | |
| 133 a.SetToMax(Point(8, 10)); | |
| 134 EXPECT_EQ(Point(8, 10).ToString(), a.ToString()); | |
| 135 | |
| 136 a.SetToMin(Point(9, 11)); | |
| 137 EXPECT_EQ(Point(8, 10).ToString(), a.ToString()); | |
| 138 a.SetToMin(Point(8, 10)); | |
| 139 EXPECT_EQ(Point(8, 10).ToString(), a.ToString()); | |
| 140 a.SetToMin(Point(11, 9)); | |
| 141 EXPECT_EQ(Point(8, 9).ToString(), a.ToString()); | |
| 142 a.SetToMin(Point(7, 11)); | |
| 143 EXPECT_EQ(Point(7, 9).ToString(), a.ToString()); | |
| 144 a.SetToMin(Point(3, 5)); | |
| 145 EXPECT_EQ(Point(3, 5).ToString(), a.ToString()); | |
| 146 } | |
| 147 | |
| 148 TEST(PointTest, ClampPointF) { | |
| 149 PointF a; | |
| 150 | |
| 151 a = PointF(3.5f, 5.5f); | |
| 152 EXPECT_EQ(PointF(3.5f, 5.5f).ToString(), a.ToString()); | |
| 153 a.SetToMax(PointF(2.5f, 4.5f)); | |
| 154 EXPECT_EQ(PointF(3.5f, 5.5f).ToString(), a.ToString()); | |
| 155 a.SetToMax(PointF(3.5f, 5.5f)); | |
| 156 EXPECT_EQ(PointF(3.5f, 5.5f).ToString(), a.ToString()); | |
| 157 a.SetToMax(PointF(4.5f, 2.5f)); | |
| 158 EXPECT_EQ(PointF(4.5f, 5.5f).ToString(), a.ToString()); | |
| 159 a.SetToMax(PointF(8.5f, 10.5f)); | |
| 160 EXPECT_EQ(PointF(8.5f, 10.5f).ToString(), a.ToString()); | |
| 161 | |
| 162 a.SetToMin(PointF(9.5f, 11.5f)); | |
| 163 EXPECT_EQ(PointF(8.5f, 10.5f).ToString(), a.ToString()); | |
| 164 a.SetToMin(PointF(8.5f, 10.5f)); | |
| 165 EXPECT_EQ(PointF(8.5f, 10.5f).ToString(), a.ToString()); | |
| 166 a.SetToMin(PointF(11.5f, 9.5f)); | |
| 167 EXPECT_EQ(PointF(8.5f, 9.5f).ToString(), a.ToString()); | |
| 168 a.SetToMin(PointF(7.5f, 11.5f)); | |
| 169 EXPECT_EQ(PointF(7.5f, 9.5f).ToString(), a.ToString()); | |
| 170 a.SetToMin(PointF(3.5f, 5.5f)); | |
| 171 EXPECT_EQ(PointF(3.5f, 5.5f).ToString(), a.ToString()); | |
| 172 } | |
| 173 | |
| 174 } // namespace gfx | |
| OLD | NEW |