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

Side by Side Diff: ui/gfx/range/range_unittest.cc

Issue 876873003: Add float version of gfx::Range (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: RangeF unit tests Created 5 years, 10 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "ui/gfx/range/range.h" 6 #include "ui/gfx/range/range.h"
7 7
8 TEST(RangeTest, EmptyInit) { 8 namespace {
9 gfx::Range r; 9
10 template <typename T>
11 void EmptyInit() {
12 T r;
10 EXPECT_EQ(0U, r.start()); 13 EXPECT_EQ(0U, r.start());
11 EXPECT_EQ(0U, r.end()); 14 EXPECT_EQ(0U, r.end());
12 EXPECT_EQ(0U, r.length()); 15 EXPECT_EQ(0U, r.length());
13 EXPECT_FALSE(r.is_reversed()); 16 EXPECT_FALSE(r.is_reversed());
14 EXPECT_TRUE(r.is_empty()); 17 EXPECT_TRUE(r.is_empty());
15 EXPECT_TRUE(r.IsValid()); 18 EXPECT_TRUE(r.IsValid());
16 EXPECT_EQ(0U, r.GetMin()); 19 EXPECT_EQ(0U, r.GetMin());
17 EXPECT_EQ(0U, r.GetMax()); 20 EXPECT_EQ(0U, r.GetMax());
18 } 21 }
19 22
20 TEST(RangeTest, StartEndInit) { 23 template <typename T>
21 gfx::Range r(10, 15); 24 void StartEndInit() {
25 T r(10, 15);
22 EXPECT_EQ(10U, r.start()); 26 EXPECT_EQ(10U, r.start());
23 EXPECT_EQ(15U, r.end()); 27 EXPECT_EQ(15U, r.end());
24 EXPECT_EQ(5U, r.length()); 28 EXPECT_EQ(5U, r.length());
25 EXPECT_FALSE(r.is_reversed()); 29 EXPECT_FALSE(r.is_reversed());
26 EXPECT_FALSE(r.is_empty()); 30 EXPECT_FALSE(r.is_empty());
27 EXPECT_TRUE(r.IsValid()); 31 EXPECT_TRUE(r.IsValid());
28 EXPECT_EQ(10U, r.GetMin()); 32 EXPECT_EQ(10U, r.GetMin());
29 EXPECT_EQ(15U, r.GetMax()); 33 EXPECT_EQ(15U, r.GetMax());
30 } 34 }
31 35
32 TEST(RangeTest, StartEndReversedInit) { 36 template <typename T>
33 gfx::Range r(10, 5); 37 void StartEndReversedInit() {
38 T r(10, 5);
34 EXPECT_EQ(10U, r.start()); 39 EXPECT_EQ(10U, r.start());
35 EXPECT_EQ(5U, r.end()); 40 EXPECT_EQ(5U, r.end());
36 EXPECT_EQ(5U, r.length()); 41 EXPECT_EQ(5U, r.length());
37 EXPECT_TRUE(r.is_reversed()); 42 EXPECT_TRUE(r.is_reversed());
38 EXPECT_FALSE(r.is_empty()); 43 EXPECT_FALSE(r.is_empty());
39 EXPECT_TRUE(r.IsValid()); 44 EXPECT_TRUE(r.IsValid());
40 EXPECT_EQ(5U, r.GetMin()); 45 EXPECT_EQ(5U, r.GetMin());
41 EXPECT_EQ(10U, r.GetMax()); 46 EXPECT_EQ(10U, r.GetMax());
42 } 47 }
43 48
44 TEST(RangeTest, PositionInit) { 49 template <typename T>
45 gfx::Range r(12); 50 void PositionInit() {
51 T r(12);
46 EXPECT_EQ(12U, r.start()); 52 EXPECT_EQ(12U, r.start());
47 EXPECT_EQ(12U, r.end()); 53 EXPECT_EQ(12U, r.end());
48 EXPECT_EQ(0U, r.length()); 54 EXPECT_EQ(0U, r.length());
49 EXPECT_FALSE(r.is_reversed()); 55 EXPECT_FALSE(r.is_reversed());
50 EXPECT_TRUE(r.is_empty()); 56 EXPECT_TRUE(r.is_empty());
51 EXPECT_TRUE(r.IsValid()); 57 EXPECT_TRUE(r.IsValid());
52 EXPECT_EQ(12U, r.GetMin()); 58 EXPECT_EQ(12U, r.GetMin());
53 EXPECT_EQ(12U, r.GetMax()); 59 EXPECT_EQ(12U, r.GetMax());
54 } 60 }
55 61
56 TEST(RangeTest, InvalidRange) { 62 template <typename T>
57 gfx::Range r(gfx::Range::InvalidRange()); 63 void InvalidRange() {
58 EXPECT_EQ(0U, r.length()); 64 T r(T::InvalidRange());
59 EXPECT_EQ(r.start(), r.end());
60 EXPECT_FALSE(r.is_reversed());
61 EXPECT_TRUE(r.is_empty()); 65 EXPECT_TRUE(r.is_empty());
62 EXPECT_FALSE(r.IsValid()); 66 EXPECT_FALSE(r.IsValid());
63 } 67 }
64 68
65 TEST(RangeTest, Equality) { 69 template <typename T>
66 gfx::Range r1(10, 4); 70 void Equality() {
67 gfx::Range r2(10, 4); 71 T r1(10, 4);
68 gfx::Range r3(10, 2); 72 T r2(10, 4);
73 T r3(10, 2);
69 EXPECT_EQ(r1, r2); 74 EXPECT_EQ(r1, r2);
70 EXPECT_NE(r1, r3); 75 EXPECT_NE(r1, r3);
71 EXPECT_NE(r2, r3); 76 EXPECT_NE(r2, r3);
72 77
73 gfx::Range r4(11, 4); 78 T r4(11, 4);
74 EXPECT_NE(r1, r4); 79 EXPECT_NE(r1, r4);
75 EXPECT_NE(r2, r4); 80 EXPECT_NE(r2, r4);
76 EXPECT_NE(r3, r4); 81 EXPECT_NE(r3, r4);
77 82
78 gfx::Range r5(12, 5); 83 T r5(12, 5);
79 EXPECT_NE(r1, r5); 84 EXPECT_NE(r1, r5);
80 EXPECT_NE(r2, r5); 85 EXPECT_NE(r2, r5);
81 EXPECT_NE(r3, r5); 86 EXPECT_NE(r3, r5);
82 } 87 }
83 88
84 TEST(RangeTest, EqualsIgnoringDirection) { 89 template <typename T>
85 gfx::Range r1(10, 5); 90 void EqualsIgnoringDirection() {
86 gfx::Range r2(5, 10); 91 T r1(10, 5);
92 T r2(5, 10);
87 EXPECT_TRUE(r1.EqualsIgnoringDirection(r2)); 93 EXPECT_TRUE(r1.EqualsIgnoringDirection(r2));
88 } 94 }
89 95
90 TEST(RangeTest, SetStart) { 96 template <typename T>
91 gfx::Range r(10, 20); 97 void SetStart() {
98 T r(10, 20);
92 EXPECT_EQ(10U, r.start()); 99 EXPECT_EQ(10U, r.start());
93 EXPECT_EQ(10U, r.length()); 100 EXPECT_EQ(10U, r.length());
94 101
95 r.set_start(42); 102 r.set_start(42);
96 EXPECT_EQ(42U, r.start()); 103 EXPECT_EQ(42U, r.start());
97 EXPECT_EQ(20U, r.end()); 104 EXPECT_EQ(20U, r.end());
98 EXPECT_EQ(22U, r.length()); 105 EXPECT_EQ(22U, r.length());
99 EXPECT_TRUE(r.is_reversed()); 106 EXPECT_TRUE(r.is_reversed());
100 } 107 }
101 108
102 TEST(RangeTest, SetEnd) { 109 template <typename T>
103 gfx::Range r(10, 13); 110 void SetEnd() {
111 T r(10, 13);
104 EXPECT_EQ(10U, r.start()); 112 EXPECT_EQ(10U, r.start());
105 EXPECT_EQ(3U, r.length()); 113 EXPECT_EQ(3U, r.length());
106 114
107 r.set_end(20); 115 r.set_end(20);
108 EXPECT_EQ(10U, r.start()); 116 EXPECT_EQ(10U, r.start());
109 EXPECT_EQ(20U, r.end()); 117 EXPECT_EQ(20U, r.end());
110 EXPECT_EQ(10U, r.length()); 118 EXPECT_EQ(10U, r.length());
111 } 119 }
112 120
113 TEST(RangeTest, SetStartAndEnd) { 121 template <typename T>
114 gfx::Range r; 122 void SetStartAndEnd() {
123 T r;
115 r.set_end(5); 124 r.set_end(5);
116 r.set_start(1); 125 r.set_start(1);
117 EXPECT_EQ(1U, r.start()); 126 EXPECT_EQ(1U, r.start());
118 EXPECT_EQ(5U, r.end()); 127 EXPECT_EQ(5U, r.end());
119 EXPECT_EQ(4U, r.length()); 128 EXPECT_EQ(4U, r.length());
120 EXPECT_EQ(1U, r.GetMin()); 129 EXPECT_EQ(1U, r.GetMin());
121 EXPECT_EQ(5U, r.GetMax()); 130 EXPECT_EQ(5U, r.GetMax());
122 } 131 }
123 132
124 TEST(RangeTest, ReversedRange) { 133 template <typename T>
125 gfx::Range r(10, 5); 134 void ReversedRange() {
135 T r(10, 5);
126 EXPECT_EQ(10U, r.start()); 136 EXPECT_EQ(10U, r.start());
127 EXPECT_EQ(5U, r.end()); 137 EXPECT_EQ(5U, r.end());
128 EXPECT_EQ(5U, r.length()); 138 EXPECT_EQ(5U, r.length());
129 EXPECT_TRUE(r.is_reversed()); 139 EXPECT_TRUE(r.is_reversed());
130 EXPECT_TRUE(r.IsValid()); 140 EXPECT_TRUE(r.IsValid());
131 EXPECT_EQ(5U, r.GetMin()); 141 EXPECT_EQ(5U, r.GetMin());
132 EXPECT_EQ(10U, r.GetMax()); 142 EXPECT_EQ(10U, r.GetMax());
133 } 143 }
134 144
135 TEST(RangeTest, SetReversedRange) { 145 template <typename T>
136 gfx::Range r(10, 20); 146 void SetReversedRange() {
147 T r(10, 20);
137 r.set_start(25); 148 r.set_start(25);
138 EXPECT_EQ(25U, r.start()); 149 EXPECT_EQ(25U, r.start());
139 EXPECT_EQ(20U, r.end()); 150 EXPECT_EQ(20U, r.end());
140 EXPECT_EQ(5U, r.length()); 151 EXPECT_EQ(5U, r.length());
141 EXPECT_TRUE(r.is_reversed()); 152 EXPECT_TRUE(r.is_reversed());
142 EXPECT_TRUE(r.IsValid()); 153 EXPECT_TRUE(r.IsValid());
143 154
144 r.set_end(21); 155 r.set_end(21);
145 EXPECT_EQ(25U, r.start()); 156 EXPECT_EQ(25U, r.start());
146 EXPECT_EQ(21U, r.end()); 157 EXPECT_EQ(21U, r.end());
147 EXPECT_EQ(4U, r.length()); 158 EXPECT_EQ(4U, r.length());
148 EXPECT_TRUE(r.IsValid()); 159 EXPECT_TRUE(r.IsValid());
149 EXPECT_EQ(21U, r.GetMin()); 160 EXPECT_EQ(21U, r.GetMin());
150 EXPECT_EQ(25U, r.GetMax()); 161 EXPECT_EQ(25U, r.GetMax());
151 } 162 }
152 163
153 void TestContainsAndIntersects(const gfx::Range& r1, 164 template <typename T>
154 const gfx::Range& r2, 165 void TestContainsAndIntersects(const T& r1,
155 const gfx::Range& r3) { 166 const T& r2,
167 const T& r3) {
156 EXPECT_TRUE(r1.Intersects(r1)); 168 EXPECT_TRUE(r1.Intersects(r1));
157 EXPECT_TRUE(r1.Contains(r1)); 169 EXPECT_TRUE(r1.Contains(r1));
158 EXPECT_EQ(gfx::Range(10, 12), r1.Intersect(r1)); 170 EXPECT_EQ(T(10, 12), r1.Intersect(r1));
159 171
160 EXPECT_FALSE(r1.Intersects(r2)); 172 EXPECT_FALSE(r1.Intersects(r2));
161 EXPECT_FALSE(r1.Contains(r2)); 173 EXPECT_FALSE(r1.Contains(r2));
162 EXPECT_TRUE(r1.Intersect(r2).is_empty()); 174 EXPECT_TRUE(r1.Intersect(r2).is_empty());
163 EXPECT_FALSE(r2.Intersects(r1)); 175 EXPECT_FALSE(r2.Intersects(r1));
164 EXPECT_FALSE(r2.Contains(r1)); 176 EXPECT_FALSE(r2.Contains(r1));
165 EXPECT_TRUE(r2.Intersect(r1).is_empty()); 177 EXPECT_TRUE(r2.Intersect(r1).is_empty());
166 178
167 EXPECT_TRUE(r1.Intersects(r3)); 179 EXPECT_TRUE(r1.Intersects(r3));
168 EXPECT_TRUE(r3.Intersects(r1)); 180 EXPECT_TRUE(r3.Intersects(r1));
169 EXPECT_TRUE(r3.Contains(r1)); 181 EXPECT_TRUE(r3.Contains(r1));
170 EXPECT_FALSE(r1.Contains(r3)); 182 EXPECT_FALSE(r1.Contains(r3));
171 EXPECT_EQ(gfx::Range(10, 12), r1.Intersect(r3)); 183 EXPECT_EQ(T(10, 12), r1.Intersect(r3));
172 EXPECT_EQ(gfx::Range(10, 12), r3.Intersect(r1)); 184 EXPECT_EQ(T(10, 12), r3.Intersect(r1));
173 185
174 EXPECT_TRUE(r2.Intersects(r3)); 186 EXPECT_TRUE(r2.Intersects(r3));
175 EXPECT_TRUE(r3.Intersects(r2)); 187 EXPECT_TRUE(r3.Intersects(r2));
176 EXPECT_FALSE(r3.Contains(r2)); 188 EXPECT_FALSE(r3.Contains(r2));
177 EXPECT_FALSE(r2.Contains(r3)); 189 EXPECT_FALSE(r2.Contains(r3));
178 EXPECT_EQ(gfx::Range(5, 8), r2.Intersect(r3)); 190 EXPECT_EQ(T(5, 8), r2.Intersect(r3));
179 EXPECT_EQ(gfx::Range(5, 8), r3.Intersect(r2)); 191 EXPECT_EQ(T(5, 8), r3.Intersect(r2));
180 } 192 }
181 193
182 TEST(RangeTest, ContainAndIntersect) { 194 template <typename T>
195 void ContainAndIntersect() {
183 { 196 {
184 SCOPED_TRACE("contain and intersect"); 197 SCOPED_TRACE("contain and intersect");
185 gfx::Range r1(10, 12); 198 T r1(10, 12);
186 gfx::Range r2(1, 8); 199 T r2(1, 8);
187 gfx::Range r3(5, 12); 200 T r3(5, 12);
188 TestContainsAndIntersects(r1, r2, r3); 201 TestContainsAndIntersects(r1, r2, r3);
189 } 202 }
190 { 203 {
191 SCOPED_TRACE("contain and intersect: reversed"); 204 SCOPED_TRACE("contain and intersect: reversed");
192 gfx::Range r1(12, 10); 205 T r1(12, 10);
193 gfx::Range r2(8, 1); 206 T r2(8, 1);
194 gfx::Range r3(12, 5); 207 T r3(12, 5);
195 TestContainsAndIntersects(r1, r2, r3); 208 TestContainsAndIntersects(r1, r2, r3);
196 } 209 }
197 // Invalid rect tests 210 // Invalid rect tests
198 gfx::Range r1(10, 12); 211 T r1(10, 12);
199 gfx::Range r2(8, 1); 212 T r2(8, 1);
200 gfx::Range invalid = r1.Intersect(r2); 213 T invalid = r1.Intersect(r2);
201 EXPECT_FALSE(invalid.IsValid()); 214 EXPECT_FALSE(invalid.IsValid());
202 EXPECT_FALSE(invalid.Contains(invalid)); 215 EXPECT_FALSE(invalid.Contains(invalid));
203 EXPECT_FALSE(invalid.Contains(r1)); 216 EXPECT_FALSE(invalid.Contains(r1));
204 EXPECT_FALSE(invalid.Intersects(invalid)); 217 EXPECT_FALSE(invalid.Intersects(invalid));
205 EXPECT_FALSE(invalid.Intersects(r1)); 218 EXPECT_FALSE(invalid.Intersects(r1));
206 EXPECT_FALSE(r1.Contains(invalid)); 219 EXPECT_FALSE(r1.Contains(invalid));
207 EXPECT_FALSE(r1.Intersects(invalid)); 220 EXPECT_FALSE(r1.Intersects(invalid));
208 } 221 }
222
223 } // namespace
224
225 TEST(RangeTest, EmptyInit) {
Robert Sesek 2015/01/30 20:47:02 I'd recommend using https://code.google.com/p/goog
ckocagil 2015/01/31 02:44:39 Done. I didn't know that existed!
226 EmptyInit<gfx::Range>();
227 EmptyInit<gfx::RangeF>();
228 }
229
230 TEST(RangeTest, StartEndInit) {
231 StartEndInit<gfx::Range>();
232 StartEndInit<gfx::RangeF>();
233 }
234
235 TEST(RangeTest, StartEndReversedInit) {
236 StartEndReversedInit<gfx::Range>();
237 StartEndReversedInit<gfx::RangeF>();
238 }
239
240 TEST(RangeTest, PositionInit) {
241 PositionInit<gfx::Range>();
242 PositionInit<gfx::RangeF>();
243 }
244
245 TEST(RangeTest, InvalidRange) {
246 InvalidRange<gfx::Range>();
247 InvalidRange<gfx::RangeF>();
248 }
249
250 TEST(RangeTest, Equality) {
251 Equality<gfx::Range>();
252 Equality<gfx::RangeF>();
253 }
254
255 TEST(RangeTest, EqualsIgnoringDirection) {
256 EqualsIgnoringDirection<gfx::Range>();
257 EqualsIgnoringDirection<gfx::RangeF>();
258 }
259
260 TEST(RangeTest, SetStart) {
261 SetStart<gfx::Range>();
262 SetStart<gfx::RangeF>();
263 }
264
265 TEST(RangeTest, SetEnd) {
266 SetEnd<gfx::Range>();
267 SetEnd<gfx::RangeF>();
268 }
269
270 TEST(RangeTest, SetStartAndEnd) {
271 SetStartAndEnd<gfx::Range>();
272 SetStartAndEnd<gfx::RangeF>();
273 }
274
275 TEST(RangeTest, ReversedRange) {
276 ReversedRange<gfx::Range>();
277 ReversedRange<gfx::RangeF>();
278 }
279
280 TEST(RangeTest, SetReversedRange) {
281 SetReversedRange<gfx::Range>();
282 SetReversedRange<gfx::RangeF>();
283 }
284
285 TEST(RangeTest, ContainAndIntersect) {
286 ContainAndIntersect<gfx::Range>();
287 ContainAndIntersect<gfx::RangeF>();
288 }
OLDNEW
« ui/gfx/range/range.h ('K') | « ui/gfx/range/range.cc ('k') | ui/gfx/range/range_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698