Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(797)

Side by Side Diff: ui/gfx/geometry/rect_unittest.cc

Issue 368903003: Provide gtest printers for ui/gfx geometry types (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add gfx_test_support dep to video_encode_accelerator_unittest Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/gfx/geometry/rect_f.h ('k') | ui/gfx/geometry/size.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <limits> 5 #include <limits>
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 #include "ui/gfx/geometry/rect.h" 9 #include "ui/gfx/geometry/rect.h"
10 #include "ui/gfx/geometry/rect_conversions.h" 10 #include "ui/gfx/geometry/rect_conversions.h"
11 #include "ui/gfx/test/gfx_util.h"
11 12
12 #if defined(OS_WIN) 13 #if defined(OS_WIN)
13 #include <windows.h> 14 #include <windows.h>
14 #endif 15 #endif
15 16
16 namespace gfx { 17 namespace gfx {
17 18
18 TEST(RectTest, Contains) { 19 TEST(RectTest, Contains) {
19 static const struct ContainsCase { 20 static const struct ContainsCase {
20 int rect_x; 21 int rect_x;
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 EXPECT_EQ(r3.height(), u.height()); 222 EXPECT_EQ(r3.height(), u.height());
222 } 223 }
223 } 224 }
224 225
225 TEST(RectTest, Subtract) { 226 TEST(RectTest, Subtract) {
226 Rect result; 227 Rect result;
227 228
228 // Matching 229 // Matching
229 result = Rect(10, 10, 20, 20); 230 result = Rect(10, 10, 20, 20);
230 result.Subtract(Rect(10, 10, 20, 20)); 231 result.Subtract(Rect(10, 10, 20, 20));
231 EXPECT_EQ(Rect(0, 0, 0, 0).ToString(), result.ToString()); 232 EXPECT_EQ(Rect(0, 0, 0, 0), result);
232 233
233 // Contains 234 // Contains
234 result = Rect(10, 10, 20, 20); 235 result = Rect(10, 10, 20, 20);
235 result.Subtract(Rect(5, 5, 30, 30)); 236 result.Subtract(Rect(5, 5, 30, 30));
236 EXPECT_EQ(Rect(0, 0, 0, 0).ToString(), result.ToString()); 237 EXPECT_EQ(Rect(0, 0, 0, 0), result);
237 238
238 // No intersection 239 // No intersection
239 result = Rect(10, 10, 20, 20); 240 result = Rect(10, 10, 20, 20);
240 result.Subtract(Rect(30, 30, 30, 30)); 241 result.Subtract(Rect(30, 30, 30, 30));
241 EXPECT_EQ(Rect(10, 10, 20, 20).ToString(), result.ToString()); 242 EXPECT_EQ(Rect(10, 10, 20, 20), result);
242 243
243 // Not a complete intersection in either direction 244 // Not a complete intersection in either direction
244 result = Rect(10, 10, 20, 20); 245 result = Rect(10, 10, 20, 20);
245 result.Subtract(Rect(15, 15, 20, 20)); 246 result.Subtract(Rect(15, 15, 20, 20));
246 EXPECT_EQ(Rect(10, 10, 20, 20).ToString(), result.ToString()); 247 EXPECT_EQ(Rect(10, 10, 20, 20), result);
247 248
248 // Complete intersection in the x-direction, top edge is fully covered. 249 // Complete intersection in the x-direction, top edge is fully covered.
249 result = Rect(10, 10, 20, 20); 250 result = Rect(10, 10, 20, 20);
250 result.Subtract(Rect(10, 15, 20, 20)); 251 result.Subtract(Rect(10, 15, 20, 20));
251 EXPECT_EQ(Rect(10, 10, 20, 5).ToString(), result.ToString()); 252 EXPECT_EQ(Rect(10, 10, 20, 5), result);
252 253
253 // Complete intersection in the x-direction, top edge is fully covered. 254 // Complete intersection in the x-direction, top edge is fully covered.
254 result = Rect(10, 10, 20, 20); 255 result = Rect(10, 10, 20, 20);
255 result.Subtract(Rect(5, 15, 30, 20)); 256 result.Subtract(Rect(5, 15, 30, 20));
256 EXPECT_EQ(Rect(10, 10, 20, 5).ToString(), result.ToString()); 257 EXPECT_EQ(Rect(10, 10, 20, 5), result);
257 258
258 // Complete intersection in the x-direction, bottom edge is fully covered. 259 // Complete intersection in the x-direction, bottom edge is fully covered.
259 result = Rect(10, 10, 20, 20); 260 result = Rect(10, 10, 20, 20);
260 result.Subtract(Rect(5, 5, 30, 20)); 261 result.Subtract(Rect(5, 5, 30, 20));
261 EXPECT_EQ(Rect(10, 25, 20, 5).ToString(), result.ToString()); 262 EXPECT_EQ(Rect(10, 25, 20, 5), result);
262 263
263 // Complete intersection in the x-direction, none of the edges is fully 264 // Complete intersection in the x-direction, none of the edges is fully
264 // covered. 265 // covered.
265 result = Rect(10, 10, 20, 20); 266 result = Rect(10, 10, 20, 20);
266 result.Subtract(Rect(5, 15, 30, 1)); 267 result.Subtract(Rect(5, 15, 30, 1));
267 EXPECT_EQ(Rect(10, 10, 20, 20).ToString(), result.ToString()); 268 EXPECT_EQ(Rect(10, 10, 20, 20), result);
268 269
269 // Complete intersection in the y-direction, left edge is fully covered. 270 // Complete intersection in the y-direction, left edge is fully covered.
270 result = Rect(10, 10, 20, 20); 271 result = Rect(10, 10, 20, 20);
271 result.Subtract(Rect(10, 10, 10, 30)); 272 result.Subtract(Rect(10, 10, 10, 30));
272 EXPECT_EQ(Rect(20, 10, 10, 20).ToString(), result.ToString()); 273 EXPECT_EQ(Rect(20, 10, 10, 20), result);
273 274
274 // Complete intersection in the y-direction, left edge is fully covered. 275 // Complete intersection in the y-direction, left edge is fully covered.
275 result = Rect(10, 10, 20, 20); 276 result = Rect(10, 10, 20, 20);
276 result.Subtract(Rect(5, 5, 20, 30)); 277 result.Subtract(Rect(5, 5, 20, 30));
277 EXPECT_EQ(Rect(25, 10, 5, 20).ToString(), result.ToString()); 278 EXPECT_EQ(Rect(25, 10, 5, 20), result);
278 279
279 // Complete intersection in the y-direction, right edge is fully covered. 280 // Complete intersection in the y-direction, right edge is fully covered.
280 result = Rect(10, 10, 20, 20); 281 result = Rect(10, 10, 20, 20);
281 result.Subtract(Rect(20, 5, 20, 30)); 282 result.Subtract(Rect(20, 5, 20, 30));
282 EXPECT_EQ(Rect(10, 10, 10, 20).ToString(), result.ToString()); 283 EXPECT_EQ(Rect(10, 10, 10, 20), result);
283 284
284 // Complete intersection in the y-direction, none of the edges is fully 285 // Complete intersection in the y-direction, none of the edges is fully
285 // covered. 286 // covered.
286 result = Rect(10, 10, 20, 20); 287 result = Rect(10, 10, 20, 20);
287 result.Subtract(Rect(15, 5, 1, 30)); 288 result.Subtract(Rect(15, 5, 1, 30));
288 EXPECT_EQ(Rect(10, 10, 20, 20).ToString(), result.ToString()); 289 EXPECT_EQ(Rect(10, 10, 20, 20), result);
289 } 290 }
290 291
291 TEST(RectTest, IsEmpty) { 292 TEST(RectTest, IsEmpty) {
292 EXPECT_TRUE(Rect(0, 0, 0, 0).IsEmpty()); 293 EXPECT_TRUE(Rect(0, 0, 0, 0).IsEmpty());
293 EXPECT_TRUE(Rect(0, 0, 0, 0).size().IsEmpty()); 294 EXPECT_TRUE(Rect(0, 0, 0, 0).size().IsEmpty());
294 EXPECT_TRUE(Rect(0, 0, 10, 0).IsEmpty()); 295 EXPECT_TRUE(Rect(0, 0, 10, 0).IsEmpty());
295 EXPECT_TRUE(Rect(0, 0, 10, 0).size().IsEmpty()); 296 EXPECT_TRUE(Rect(0, 0, 10, 0).size().IsEmpty());
296 EXPECT_TRUE(Rect(0, 0, 0, 10).IsEmpty()); 297 EXPECT_TRUE(Rect(0, 0, 0, 10).IsEmpty());
297 EXPECT_TRUE(Rect(0, 0, 0, 10).size().IsEmpty()); 298 EXPECT_TRUE(Rect(0, 0, 0, 10).size().IsEmpty());
298 EXPECT_FALSE(Rect(0, 0, 10, 10).IsEmpty()); 299 EXPECT_FALSE(Rect(0, 0, 10, 10).IsEmpty());
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 Rect enclosed = ToEnclosingRect(r1); 563 Rect enclosed = ToEnclosingRect(r1);
563 EXPECT_FLOAT_AND_NAN_EQ(r2.x(), enclosed.x()); 564 EXPECT_FLOAT_AND_NAN_EQ(r2.x(), enclosed.x());
564 EXPECT_FLOAT_AND_NAN_EQ(r2.y(), enclosed.y()); 565 EXPECT_FLOAT_AND_NAN_EQ(r2.y(), enclosed.y());
565 EXPECT_FLOAT_AND_NAN_EQ(r2.width(), enclosed.width()); 566 EXPECT_FLOAT_AND_NAN_EQ(r2.width(), enclosed.width());
566 EXPECT_FLOAT_AND_NAN_EQ(r2.height(), enclosed.height()); 567 EXPECT_FLOAT_AND_NAN_EQ(r2.height(), enclosed.height());
567 } 568 }
568 } 569 }
569 570
570 TEST(RectTest, ToNearestRect) { 571 TEST(RectTest, ToNearestRect) {
571 Rect rect; 572 Rect rect;
572 EXPECT_EQ(rect.ToString(), ToNearestRect(RectF(rect)).ToString()); 573 EXPECT_EQ(rect, ToNearestRect(RectF(rect)));
573 574
574 rect = Rect(-1, -1, 3, 3); 575 rect = Rect(-1, -1, 3, 3);
575 EXPECT_EQ(rect.ToString(), ToNearestRect(RectF(rect)).ToString()); 576 EXPECT_EQ(rect, ToNearestRect(RectF(rect)));
576 577
577 RectF rectf(-1.00001f, -0.999999f, 3.0000001f, 2.999999f); 578 RectF rectf(-1.00001f, -0.999999f, 3.0000001f, 2.999999f);
578 EXPECT_EQ(rect.ToString(), ToNearestRect(rectf).ToString()); 579 EXPECT_EQ(rect, ToNearestRect(rectf));
579 } 580 }
580 581
581 TEST(RectTest, ToFlooredRect) { 582 TEST(RectTest, ToFlooredRect) {
582 static const struct Test { 583 static const struct Test {
583 float x1; // source 584 float x1; // source
584 float y1; 585 float y1;
585 float w1; 586 float w1;
586 float h1; 587 float h1;
587 int x2; // target 588 int x2; // target
588 int y2; 589 int y2;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 }, { 645 }, {
645 Rect(-1, -2, 0, 0), 646 Rect(-1, -2, 0, 0),
646 1.5f, 647 1.5f,
647 Rect(-1, -3, 0, 0), 648 Rect(-1, -3, 0, 0),
648 } 649 }
649 }; 650 };
650 651
651 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 652 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
652 Rect result = ScaleToEnclosedRect(tests[i].input_rect, 653 Rect result = ScaleToEnclosedRect(tests[i].input_rect,
653 tests[i].input_scale); 654 tests[i].input_scale);
654 EXPECT_EQ(tests[i].expected_rect.ToString(), result.ToString()); 655 EXPECT_EQ(tests[i].expected_rect, result);
655 } 656 }
656 } 657 }
657 658
658 TEST(RectTest, ScaleToEnclosingRect) { 659 TEST(RectTest, ScaleToEnclosingRect) {
659 static const struct Test { 660 static const struct Test {
660 Rect input_rect; 661 Rect input_rect;
661 float input_scale; 662 float input_scale;
662 Rect expected_rect; 663 Rect expected_rect;
663 } tests[] = { 664 } tests[] = {
664 { 665 {
(...skipping 23 matching lines...) Expand all
688 }, { 689 }, {
689 Rect(-1, -2, 0, 0), 690 Rect(-1, -2, 0, 0),
690 1.5f, 691 1.5f,
691 Rect(-2, -3, 0, 0), 692 Rect(-2, -3, 0, 0),
692 } 693 }
693 }; 694 };
694 695
695 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) { 696 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(tests); ++i) {
696 Rect result = ScaleToEnclosingRect(tests[i].input_rect, 697 Rect result = ScaleToEnclosingRect(tests[i].input_rect,
697 tests[i].input_scale); 698 tests[i].input_scale);
698 EXPECT_EQ(tests[i].expected_rect.ToString(), result.ToString()); 699 EXPECT_EQ(tests[i].expected_rect, result);
699 } 700 }
700 } 701 }
701 702
702 #if defined(OS_WIN) 703 #if defined(OS_WIN)
703 TEST(RectTest, ConstructAndAssign) { 704 TEST(RectTest, ConstructAndAssign) {
704 const RECT rect_1 = { 0, 0, 10, 10 }; 705 const RECT rect_1 = { 0, 0, 10, 10 };
705 const RECT rect_2 = { 0, 0, -10, -10 }; 706 const RECT rect_2 = { 0, 0, -10, -10 };
706 Rect test1(rect_1); 707 Rect test1(rect_1);
707 Rect test2(rect_2); 708 Rect test2(rect_2);
708 } 709 }
709 #endif 710 #endif
710 711
711 TEST(RectTest, ToRectF) { 712 TEST(RectTest, ToRectF) {
712 // Check that implicit conversion from integer to float compiles. 713 // Check that implicit conversion from integer to float compiles.
713 Rect a(10, 20, 30, 40); 714 Rect a(10, 20, 30, 40);
714 RectF b(10, 20, 30, 40); 715 RectF b(10, 20, 30, 40);
715 716
716 RectF intersect = IntersectRects(a, b); 717 RectF intersect = IntersectRects(a, b);
717 EXPECT_EQ(b.ToString(), intersect.ToString()); 718 EXPECT_EQ(b, intersect);
718 719
719 EXPECT_EQ(a, b); 720 EXPECT_EQ(a, b);
720 EXPECT_EQ(b, a); 721 EXPECT_EQ(b, a);
721 } 722 }
722 723
723 TEST(RectTest, BoundingRect) { 724 TEST(RectTest, BoundingRect) {
724 struct { 725 struct {
725 Point a; 726 Point a;
726 Point b; 727 Point b;
727 Rect expected; 728 Rect expected;
728 } int_tests[] = { 729 } int_tests[] = {
729 // If point B dominates A, then A should be the origin. 730 // If point B dominates A, then A should be the origin.
730 { Point(4, 6), Point(4, 6), Rect(4, 6, 0, 0) }, 731 { Point(4, 6), Point(4, 6), Rect(4, 6, 0, 0) },
731 { Point(4, 6), Point(8, 6), Rect(4, 6, 4, 0) }, 732 { Point(4, 6), Point(8, 6), Rect(4, 6, 4, 0) },
732 { Point(4, 6), Point(4, 9), Rect(4, 6, 0, 3) }, 733 { Point(4, 6), Point(4, 9), Rect(4, 6, 0, 3) },
733 { Point(4, 6), Point(8, 9), Rect(4, 6, 4, 3) }, 734 { Point(4, 6), Point(8, 9), Rect(4, 6, 4, 3) },
734 // If point A dominates B, then B should be the origin. 735 // If point A dominates B, then B should be the origin.
735 { Point(4, 6), Point(4, 6), Rect(4, 6, 0, 0) }, 736 { Point(4, 6), Point(4, 6), Rect(4, 6, 0, 0) },
736 { Point(8, 6), Point(4, 6), Rect(4, 6, 4, 0) }, 737 { Point(8, 6), Point(4, 6), Rect(4, 6, 4, 0) },
737 { Point(4, 9), Point(4, 6), Rect(4, 6, 0, 3) }, 738 { Point(4, 9), Point(4, 6), Rect(4, 6, 0, 3) },
738 { Point(8, 9), Point(4, 6), Rect(4, 6, 4, 3) }, 739 { Point(8, 9), Point(4, 6), Rect(4, 6, 4, 3) },
739 // If neither point dominates, then the origin is a combination of the two. 740 // If neither point dominates, then the origin is a combination of the two.
740 { Point(4, 6), Point(6, 4), Rect(4, 4, 2, 2) }, 741 { Point(4, 6), Point(6, 4), Rect(4, 4, 2, 2) },
741 { Point(-4, -6), Point(-6, -4), Rect(-6, -6, 2, 2) }, 742 { Point(-4, -6), Point(-6, -4), Rect(-6, -6, 2, 2) },
742 { Point(-4, 6), Point(6, -4), Rect(-4, -4, 10, 10) }, 743 { Point(-4, 6), Point(6, -4), Rect(-4, -4, 10, 10) },
743 }; 744 };
744 745
745 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(int_tests); ++i) { 746 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(int_tests); ++i) {
746 Rect actual = BoundingRect(int_tests[i].a, int_tests[i].b); 747 Rect actual = BoundingRect(int_tests[i].a, int_tests[i].b);
747 EXPECT_EQ(int_tests[i].expected.ToString(), actual.ToString()); 748 EXPECT_EQ(int_tests[i].expected, actual);
748 } 749 }
749 750
750 struct { 751 struct {
751 PointF a; 752 PointF a;
752 PointF b; 753 PointF b;
753 RectF expected; 754 RectF expected;
754 } float_tests[] = { 755 } float_tests[] = {
755 // If point B dominates A, then A should be the origin. 756 // If point B dominates A, then A should be the origin.
756 { PointF(4.2f, 6.8f), PointF(4.2f, 6.8f), 757 { PointF(4.2f, 6.8f), PointF(4.2f, 6.8f),
757 RectF(4.2f, 6.8f, 0, 0) }, 758 RectF(4.2f, 6.8f, 0, 0) },
(...skipping 16 matching lines...) Expand all
774 { PointF(4.2f, 6.8f), PointF(6.8f, 4.2f), 775 { PointF(4.2f, 6.8f), PointF(6.8f, 4.2f),
775 RectF(4.2f, 4.2f, 2.6f, 2.6f) }, 776 RectF(4.2f, 4.2f, 2.6f, 2.6f) },
776 { PointF(-4.2f, -6.8f), PointF(-6.8f, -4.2f), 777 { PointF(-4.2f, -6.8f), PointF(-6.8f, -4.2f),
777 RectF(-6.8f, -6.8f, 2.6f, 2.6f) }, 778 RectF(-6.8f, -6.8f, 2.6f, 2.6f) },
778 { PointF(-4.2f, 6.8f), PointF(6.8f, -4.2f), 779 { PointF(-4.2f, 6.8f), PointF(6.8f, -4.2f),
779 RectF(-4.2f, -4.2f, 11.0f, 11.0f) } 780 RectF(-4.2f, -4.2f, 11.0f, 11.0f) }
780 }; 781 };
781 782
782 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(float_tests); ++i) { 783 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(float_tests); ++i) {
783 RectF actual = BoundingRect(float_tests[i].a, float_tests[i].b); 784 RectF actual = BoundingRect(float_tests[i].a, float_tests[i].b);
784 EXPECT_EQ(float_tests[i].expected.ToString(), actual.ToString()); 785 EXPECT_RECTF_EQ(float_tests[i].expected, actual);
785 } 786 }
786 } 787 }
787 788
788 TEST(RectTest, IsExpressibleAsRect) { 789 TEST(RectTest, IsExpressibleAsRect) {
789 EXPECT_TRUE(RectF().IsExpressibleAsRect()); 790 EXPECT_TRUE(RectF().IsExpressibleAsRect());
790 791
791 float min = std::numeric_limits<int>::min(); 792 float min = std::numeric_limits<int>::min();
792 float max = std::numeric_limits<int>::max(); 793 float max = std::numeric_limits<int>::max();
793 float infinity = std::numeric_limits<float>::infinity(); 794 float infinity = std::numeric_limits<float>::infinity();
794 795
(...skipping 16 matching lines...) Expand all
811 812
812 EXPECT_FALSE(RectF(infinity, 0, 1, 1).IsExpressibleAsRect()); 813 EXPECT_FALSE(RectF(infinity, 0, 1, 1).IsExpressibleAsRect());
813 EXPECT_FALSE(RectF(0, infinity, 1, 1).IsExpressibleAsRect()); 814 EXPECT_FALSE(RectF(0, infinity, 1, 1).IsExpressibleAsRect());
814 EXPECT_FALSE(RectF(0, 0, infinity, 1).IsExpressibleAsRect()); 815 EXPECT_FALSE(RectF(0, 0, infinity, 1).IsExpressibleAsRect());
815 EXPECT_FALSE(RectF(0, 0, 1, infinity).IsExpressibleAsRect()); 816 EXPECT_FALSE(RectF(0, 0, 1, infinity).IsExpressibleAsRect());
816 } 817 }
817 818
818 TEST(RectTest, Offset) { 819 TEST(RectTest, Offset) {
819 Rect i(1, 2, 3, 4); 820 Rect i(1, 2, 3, 4);
820 821
821 EXPECT_EQ(Rect(2, 1, 3, 4).ToString(), (i + Vector2d(1, -1)).ToString()); 822 EXPECT_EQ(Rect(2, 1, 3, 4), (i + Vector2d(1, -1)));
822 EXPECT_EQ(Rect(2, 1, 3, 4).ToString(), (Vector2d(1, -1) + i).ToString()); 823 EXPECT_EQ(Rect(2, 1, 3, 4), (Vector2d(1, -1) + i));
823 i += Vector2d(1, -1); 824 i += Vector2d(1, -1);
824 EXPECT_EQ(Rect(2, 1, 3, 4).ToString(), i.ToString()); 825 EXPECT_EQ(Rect(2, 1, 3, 4), i);
825 EXPECT_EQ(Rect(1, 2, 3, 4).ToString(), (i - Vector2d(1, -1)).ToString()); 826 EXPECT_EQ(Rect(1, 2, 3, 4), (i - Vector2d(1, -1)));
826 i -= Vector2d(1, -1); 827 i -= Vector2d(1, -1);
827 EXPECT_EQ(Rect(1, 2, 3, 4).ToString(), i.ToString()); 828 EXPECT_EQ(Rect(1, 2, 3, 4), i);
828 829
829 RectF f(1.1f, 2.2f, 3.3f, 4.4f); 830 RectF f(1.1f, 2.2f, 3.3f, 4.4f);
830 EXPECT_EQ(RectF(2.2f, 1.1f, 3.3f, 4.4f).ToString(), 831 EXPECT_EQ(RectF(2.2f, 1.1f, 3.3f, 4.4f), (f + Vector2dF(1.1f, -1.1f)));
831 (f + Vector2dF(1.1f, -1.1f)).ToString()); 832 EXPECT_EQ(RectF(2.2f, 1.1f, 3.3f, 4.4f), (Vector2dF(1.1f, -1.1f) + f));
832 EXPECT_EQ(RectF(2.2f, 1.1f, 3.3f, 4.4f).ToString(),
833 (Vector2dF(1.1f, -1.1f) + f).ToString());
834 f += Vector2dF(1.1f, -1.1f); 833 f += Vector2dF(1.1f, -1.1f);
835 EXPECT_EQ(RectF(2.2f, 1.1f, 3.3f, 4.4f).ToString(), f.ToString()); 834 EXPECT_EQ(RectF(2.2f, 1.1f, 3.3f, 4.4f), f);
836 EXPECT_EQ(RectF(1.1f, 2.2f, 3.3f, 4.4f).ToString(), 835 EXPECT_EQ(RectF(1.1f, 2.2f, 3.3f, 4.4f), (f - Vector2dF(1.1f, -1.1f)));
837 (f - Vector2dF(1.1f, -1.1f)).ToString());
838 f -= Vector2dF(1.1f, -1.1f); 836 f -= Vector2dF(1.1f, -1.1f);
839 EXPECT_EQ(RectF(1.1f, 2.2f, 3.3f, 4.4f).ToString(), f.ToString()); 837 EXPECT_EQ(RectF(1.1f, 2.2f, 3.3f, 4.4f), f);
840 } 838 }
841 839
842 TEST(RectTest, Corners) { 840 TEST(RectTest, Corners) {
843 Rect i(1, 2, 3, 4); 841 Rect i(1, 2, 3, 4);
844 RectF f(1.1f, 2.1f, 3.1f, 4.1f); 842 RectF f(1.1f, 2.1f, 3.1f, 4.1f);
845 843
846 EXPECT_EQ(Point(1, 2).ToString(), i.origin().ToString()); 844 EXPECT_EQ(Point(1, 2), i.origin());
847 EXPECT_EQ(Point(4, 2).ToString(), i.top_right().ToString()); 845 EXPECT_EQ(Point(4, 2), i.top_right());
848 EXPECT_EQ(Point(1, 6).ToString(), i.bottom_left().ToString()); 846 EXPECT_EQ(Point(1, 6), i.bottom_left());
849 EXPECT_EQ(Point(4, 6).ToString(), i.bottom_right().ToString()); 847 EXPECT_EQ(Point(4, 6), i.bottom_right());
850 848
851 EXPECT_EQ(PointF(1.1f, 2.1f).ToString(), f.origin().ToString()); 849 EXPECT_EQ(PointF(1.1f, 2.1f), f.origin());
852 EXPECT_EQ(PointF(4.2f, 2.1f).ToString(), f.top_right().ToString()); 850 EXPECT_EQ(PointF(4.2f, 2.1f), f.top_right());
853 EXPECT_EQ(PointF(1.1f, 6.2f).ToString(), f.bottom_left().ToString()); 851 EXPECT_EQ(PointF(1.1f, 6.2f), f.bottom_left());
854 EXPECT_EQ(PointF(4.2f, 6.2f).ToString(), f.bottom_right().ToString()); 852 EXPECT_EQ(PointF(4.2f, 6.2f), f.bottom_right());
855 } 853 }
856 854
857 TEST(RectTest, ManhattanDistanceToPoint) { 855 TEST(RectTest, ManhattanDistanceToPoint) {
858 Rect i(1, 2, 3, 4); 856 Rect i(1, 2, 3, 4);
859 EXPECT_EQ(0, i.ManhattanDistanceToPoint(Point(1, 2))); 857 EXPECT_EQ(0, i.ManhattanDistanceToPoint(Point(1, 2)));
860 EXPECT_EQ(0, i.ManhattanDistanceToPoint(Point(4, 6))); 858 EXPECT_EQ(0, i.ManhattanDistanceToPoint(Point(4, 6)));
861 EXPECT_EQ(0, i.ManhattanDistanceToPoint(Point(2, 4))); 859 EXPECT_EQ(0, i.ManhattanDistanceToPoint(Point(2, 4)));
862 EXPECT_EQ(3, i.ManhattanDistanceToPoint(Point(0, 0))); 860 EXPECT_EQ(3, i.ManhattanDistanceToPoint(Point(0, 0)));
863 EXPECT_EQ(2, i.ManhattanDistanceToPoint(Point(2, 0))); 861 EXPECT_EQ(2, i.ManhattanDistanceToPoint(Point(2, 0)));
864 EXPECT_EQ(3, i.ManhattanDistanceToPoint(Point(5, 0))); 862 EXPECT_EQ(3, i.ManhattanDistanceToPoint(Point(5, 0)));
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 0.0f, f.ManhattanInternalDistance(gfx::RectF(-1.0f, 0.0f, 1.1f, 1.0f))); 914 0.0f, f.ManhattanInternalDistance(gfx::RectF(-1.0f, 0.0f, 1.1f, 1.0f)));
917 EXPECT_FLOAT_EQ( 915 EXPECT_FLOAT_EQ(
918 0.1f + kEpsilon, 916 0.1f + kEpsilon,
919 f.ManhattanInternalDistance(gfx::RectF(-1.5f, 0.0f, 1.4f, 1.0f))); 917 f.ManhattanInternalDistance(gfx::RectF(-1.5f, 0.0f, 1.4f, 1.0f)));
920 EXPECT_FLOAT_EQ( 918 EXPECT_FLOAT_EQ(
921 kEpsilon, 919 kEpsilon,
922 f.ManhattanInternalDistance(gfx::RectF(-1.5f, 0.0f, 1.5f, 1.0f))); 920 f.ManhattanInternalDistance(gfx::RectF(-1.5f, 0.0f, 1.5f, 1.0f)));
923 } 921 }
924 922
925 } // namespace gfx 923 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/geometry/rect_f.h ('k') | ui/gfx/geometry/size.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698