Index: ui/gfx/point_unittest.cc |
diff --git a/ui/gfx/point_unittest.cc b/ui/gfx/point_unittest.cc |
index cae21660f31481d2fe9cd8a59a180fb70575c109..b92305e8c937eec2cf63e57fc0c3dea6e32ccbd5 100644 |
--- a/ui/gfx/point_unittest.cc |
+++ b/ui/gfx/point_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "ui/gfx/point_base.h" |
+#include "base/basictypes.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "ui/gfx/point.h" |
#include "ui/gfx/point_f.h" |
@@ -47,4 +48,34 @@ TEST(PointTest, IsOrigin) { |
EXPECT_TRUE(gfx::PointF(0, 0).IsOrigin()); |
} |
+TEST(PointTest, VectorArithmetic) { |
+ gfx::Point a(1, 5); |
+ gfx::Vector2d v1(3, -3); |
+ gfx::Vector2d v2(-8, 1); |
+ |
+ static const struct { |
+ gfx::Point expected; |
+ gfx::Point actual; |
+ } tests[] = { |
+ { gfx::Point(4, 2), a + v1 }, |
+ { gfx::Point(-2, 8), a - v1 }, |
+ { a, a - v1 + v1 }, |
+ { a, a + v1 - v1 }, |
+ { a, a + gfx::Vector2d() }, |
+ { gfx::Point(12, 1), a + v1 - v2 }, |
+ { gfx::Point(-10, 9), a - v1 + v2 } |
+ }; |
+ |
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) |
+ EXPECT_EQ(tests[i].expected.ToString(), |
+ tests[i].actual.ToString()); |
+} |
+ |
+TEST(PointTest, DistanceFrom) { |
+ gfx::Point a(1, 5); |
+ gfx::Point b(-20, 8); |
+ EXPECT_EQ(gfx::Vector2d(-20 - 1, 8 - 5).ToString(), |
+ b.DistanceFrom(a).ToString()); |
+} |
+ |
} // namespace ui |