OLD | NEW |
| (Empty) |
1 // Copyright 2013 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 "base/basictypes.h" | |
6 #include "testing/gtest/include/gtest/gtest.h" | |
7 #include "ui/gfx/box_f.h" | |
8 | |
9 namespace gfx { | |
10 | |
11 TEST(BoxTest, Constructors) { | |
12 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).ToString(), | |
13 BoxF().ToString()); | |
14 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, -3.f, -5.f, -7.f).ToString(), | |
15 BoxF().ToString()); | |
16 | |
17 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 3.f, 5.f, 7.f).ToString(), | |
18 BoxF(3.f, 5.f, 7.f).ToString()); | |
19 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).ToString(), | |
20 BoxF(-3.f, -5.f, -7.f).ToString()); | |
21 | |
22 EXPECT_EQ(BoxF(2.f, 4.f, 6.f, 3.f, 5.f, 7.f).ToString(), | |
23 BoxF(Point3F(2.f, 4.f, 6.f), 3.f, 5.f, 7.f).ToString()); | |
24 EXPECT_EQ(BoxF(2.f, 4.f, 6.f, 0.f, 0.f, 0.f).ToString(), | |
25 BoxF(Point3F(2.f, 4.f, 6.f), -3.f, -5.f, -7.f).ToString()); | |
26 } | |
27 | |
28 TEST(BoxTest, IsEmpty) { | |
29 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 0.f).IsEmpty()); | |
30 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 0.f, 0.f).IsEmpty()); | |
31 | |
32 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 2.f, 0.f, 0.f).IsEmpty()); | |
33 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 2.f, 0.f, 0.f).IsEmpty()); | |
34 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 2.f, 0.f).IsEmpty()); | |
35 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 2.f, 0.f).IsEmpty()); | |
36 EXPECT_TRUE(BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 2.f).IsEmpty()); | |
37 EXPECT_TRUE(BoxF(1.f, 2.f, 3.f, 0.f, 0.f, 2.f).IsEmpty()); | |
38 | |
39 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 0.f, 2.f, 2.f).IsEmpty()); | |
40 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 0.f, 2.f, 2.f).IsEmpty()); | |
41 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 0.f, 2.f).IsEmpty()); | |
42 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 0.f, 2.f).IsEmpty()); | |
43 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 2.f, 0.f).IsEmpty()); | |
44 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 2.f, 0.f).IsEmpty()); | |
45 | |
46 EXPECT_FALSE(BoxF(0.f, 0.f, 0.f, 2.f, 2.f, 2.f).IsEmpty()); | |
47 EXPECT_FALSE(BoxF(1.f, 2.f, 3.f, 2.f, 2.f, 2.f).IsEmpty()); | |
48 } | |
49 | |
50 TEST(BoxTest, Union) { | |
51 BoxF empty_box; | |
52 BoxF box1(0.f, 0.f, 0.f, 1.f, 1.f, 1.f); | |
53 BoxF box2(0.f, 0.f, 0.f, 4.f, 6.f, 8.f); | |
54 BoxF box3(3.f, 4.f, 5.f, 6.f, 4.f, 0.f); | |
55 | |
56 EXPECT_EQ(empty_box.ToString(), UnionBoxes(empty_box, empty_box).ToString()); | |
57 EXPECT_EQ(box1.ToString(), UnionBoxes(empty_box, box1).ToString()); | |
58 EXPECT_EQ(box1.ToString(), UnionBoxes(box1, empty_box).ToString()); | |
59 EXPECT_EQ(box2.ToString(), UnionBoxes(empty_box, box2).ToString()); | |
60 EXPECT_EQ(box2.ToString(), UnionBoxes(box2, empty_box).ToString()); | |
61 EXPECT_EQ(box3.ToString(), UnionBoxes(empty_box, box3).ToString()); | |
62 EXPECT_EQ(box3.ToString(), UnionBoxes(box3, empty_box).ToString()); | |
63 | |
64 // box_1 is contained in box_2 | |
65 EXPECT_EQ(box2.ToString(), UnionBoxes(box1, box2).ToString()); | |
66 EXPECT_EQ(box2.ToString(), UnionBoxes(box2, box1).ToString()); | |
67 | |
68 // box_1 and box_3 are disjoint | |
69 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 5.f).ToString(), | |
70 UnionBoxes(box1, box3).ToString()); | |
71 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 5.f).ToString(), | |
72 UnionBoxes(box3, box1).ToString()); | |
73 | |
74 // box_2 and box_3 intersect, but neither contains the other | |
75 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 8.f).ToString(), | |
76 UnionBoxes(box2, box3).ToString()); | |
77 EXPECT_EQ(BoxF(0.f, 0.f, 0.f, 9.f, 8.f, 8.f).ToString(), | |
78 UnionBoxes(box3, box2).ToString()); | |
79 } | |
80 | |
81 TEST(BoxTest, ExpandTo) { | |
82 BoxF box1; | |
83 BoxF box2(0.f, 0.f, 0.f, 1.f, 1.f, 1.f); | |
84 BoxF box3(1.f, 1.f, 1.f, 0.f, 0.f, 0.f); | |
85 | |
86 Point3F point1(0.5f, 0.5f, 0.5f); | |
87 Point3F point2(-0.5f, -0.5f, -0.5f); | |
88 | |
89 BoxF expected1_1(0.f, 0.f, 0.f, 0.5f, 0.5f, 0.5f); | |
90 BoxF expected1_2(-0.5f, -0.5f, -0.5f, 1.f, 1.f, 1.f); | |
91 | |
92 BoxF expected2_1 = box2; | |
93 BoxF expected2_2(-0.5f, -0.5f, -0.5f, 1.5f, 1.5f, 1.5f); | |
94 | |
95 BoxF expected3_1(0.5f, 0.5f, 0.5f, 0.5f, 0.5f, 0.5f); | |
96 BoxF expected3_2(-0.5f, -0.5f, -0.5f, 1.5f, 1.5f, 1.5f); | |
97 | |
98 box1.ExpandTo(point1); | |
99 EXPECT_EQ(expected1_1.ToString(), box1.ToString()); | |
100 box1.ExpandTo(point2); | |
101 EXPECT_EQ(expected1_2.ToString(), box1.ToString()); | |
102 | |
103 box2.ExpandTo(point1); | |
104 EXPECT_EQ(expected2_1.ToString(), box2.ToString()); | |
105 box2.ExpandTo(point2); | |
106 EXPECT_EQ(expected2_2.ToString(), box2.ToString()); | |
107 | |
108 box3.ExpandTo(point1); | |
109 EXPECT_EQ(expected3_1.ToString(), box3.ToString()); | |
110 box3.ExpandTo(point2); | |
111 EXPECT_EQ(expected3_2.ToString(), box3.ToString()); | |
112 } | |
113 | |
114 TEST(BoxTest, Scale) { | |
115 BoxF box1(2.f, 3.f, 4.f, 5.f, 6.f, 7.f); | |
116 | |
117 EXPECT_EQ(BoxF().ToString(), ScaleBox(box1, 0.f).ToString()); | |
118 EXPECT_EQ(box1.ToString(), ScaleBox(box1, 1.f).ToString()); | |
119 EXPECT_EQ(BoxF(4.f, 12.f, 24.f, 10.f, 24.f, 42.f).ToString(), | |
120 ScaleBox(box1, 2.f, 4.f, 6.f).ToString()); | |
121 | |
122 BoxF box2 = box1; | |
123 box2.Scale(0.f); | |
124 EXPECT_EQ(BoxF().ToString(), box2.ToString()); | |
125 | |
126 box2 = box1; | |
127 box2.Scale(1.f); | |
128 EXPECT_EQ(box1.ToString(), box2.ToString()); | |
129 | |
130 box2.Scale(2.f, 4.f, 6.f); | |
131 EXPECT_EQ(BoxF(4.f, 12.f, 24.f, 10.f, 24.f, 42.f).ToString(), | |
132 box2.ToString()); | |
133 } | |
134 | |
135 TEST(BoxTest, Equals) { | |
136 EXPECT_TRUE(BoxF() == BoxF()); | |
137 EXPECT_TRUE(BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f) == | |
138 BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f)); | |
139 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 1.f)); | |
140 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 0.f, 1.f, 0.f)); | |
141 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 0.f, 1.f, 0.f, 0.f)); | |
142 EXPECT_FALSE(BoxF() == BoxF(0.f, 0.f, 1.f, 0.f, 0.f, 0.f)); | |
143 EXPECT_FALSE(BoxF() == BoxF(0.f, 1.f, 0.f, 0.f, 0.f, 0.f)); | |
144 EXPECT_FALSE(BoxF() == BoxF(1.f, 0.f, 0.f, 0.f, 0.f, 0.f)); | |
145 } | |
146 | |
147 TEST(BoxTest, NotEquals) { | |
148 EXPECT_FALSE(BoxF() != BoxF()); | |
149 EXPECT_FALSE(BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f) != | |
150 BoxF(2.f, 3.f, 4.f, 6.f, 8.f, 10.f)); | |
151 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 0.f, 0.f, 1.f)); | |
152 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 0.f, 1.f, 0.f)); | |
153 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 0.f, 1.f, 0.f, 0.f)); | |
154 EXPECT_TRUE(BoxF() != BoxF(0.f, 0.f, 1.f, 0.f, 0.f, 0.f)); | |
155 EXPECT_TRUE(BoxF() != BoxF(0.f, 1.f, 0.f, 0.f, 0.f, 0.f)); | |
156 EXPECT_TRUE(BoxF() != BoxF(1.f, 0.f, 0.f, 0.f, 0.f, 0.f)); | |
157 } | |
158 | |
159 | |
160 TEST(BoxTest, Offset) { | |
161 BoxF box1(2.f, 3.f, 4.f, 5.f, 6.f, 7.f); | |
162 | |
163 EXPECT_EQ(box1.ToString(), (box1 + Vector3dF(0.f, 0.f, 0.f)).ToString()); | |
164 EXPECT_EQ(BoxF(3.f, 1.f, 0.f, 5.f, 6.f, 7.f).ToString(), | |
165 (box1 + Vector3dF(1.f, -2.f, -4.f)).ToString()); | |
166 | |
167 BoxF box2 = box1; | |
168 box2 += Vector3dF(0.f, 0.f, 0.f); | |
169 EXPECT_EQ(box1.ToString(), box2.ToString()); | |
170 | |
171 box2 += Vector3dF(1.f, -2.f, -4.f); | |
172 EXPECT_EQ(BoxF(3.f, 1.f, 0.f, 5.f, 6.f, 7.f).ToString(), | |
173 box2.ToString()); | |
174 } | |
175 | |
176 } // namespace gfx | |
OLD | NEW |