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

Side by Side Diff: cc/region_unittest.cc

Issue 11366094: cc: Create a Region class that wraps SkRegion, to replace use of WebCore::Region. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 1 month 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 | « cc/region.cc ('k') | cc/render_surface_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 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 "config.h"
6
7 #include "cc/region.h"
8
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 using namespace cc;
12
13 namespace {
14
15 #define TEST_INSIDE_RECT(r, x, y, w, h) \
16 EXPECT_TRUE(r.Contains(gfx::Point(x, y))); \
17 EXPECT_TRUE(r.Contains(gfx::Point(x + w - 1, y))); \
18 EXPECT_TRUE(r.Contains(gfx::Point(x, y + h - 1))); \
19 EXPECT_TRUE(r.Contains(gfx::Point(x + w - 1, y + h - 1))); \
20 EXPECT_TRUE(r.Contains(gfx::Point(x, y + h / 2))); \
21 EXPECT_TRUE(r.Contains(gfx::Point(x + w - 1, y + h / 2))); \
22 EXPECT_TRUE(r.Contains(gfx::Point(x + w / 2, y))); \
23 EXPECT_TRUE(r.Contains(gfx::Point(x + w / 2, y + h - 1))); \
24 EXPECT_TRUE(r.Contains(gfx::Point(x + w / 2, y + h / 2))); \
25
26 #define TEST_LEFT_OF_RECT(r, x, y, w, h) \
27 EXPECT_FALSE(r.Contains(gfx::Point(x - 1, y))); \
28 EXPECT_FALSE(r.Contains(gfx::Point(x - 1, y + h - 1))); \
29
30 #define TEST_RIGHT_OF_RECT(r, x, y, w, h) \
31 EXPECT_FALSE(r.Contains(gfx::Point(x + w, y))); \
32 EXPECT_FALSE(r.Contains(gfx::Point(x + w, y + h - 1))); \
33
34 #define TEST_TOP_OF_RECT(r, x, y, w, h) \
35 EXPECT_FALSE(r.Contains(gfx::Point(x, y - 1))); \
36 EXPECT_FALSE(r.Contains(gfx::Point(x + w - 1, y - 1))); \
37
38 #define TEST_BOTTOM_OF_RECT(r, x, y, w, h) \
39 EXPECT_FALSE(r.Contains(gfx::Point(x, y + h))); \
40 EXPECT_FALSE(r.Contains(gfx::Point(x + w - 1, y + h))); \
41
42 TEST(RegionTest, ContainsPoint) {
43 Region r;
44
45 EXPECT_FALSE(r.Contains(gfx::Point(0, 0)));
46
47 r.Union(gfx::Rect(35, 35, 1, 1));
48 TEST_INSIDE_RECT(r, 35, 35, 1, 1);
49 TEST_LEFT_OF_RECT(r, 35, 35, 1, 1);
50 TEST_RIGHT_OF_RECT(r, 35, 35, 1, 1);
51 TEST_TOP_OF_RECT(r, 35, 35, 1, 1);
52 TEST_BOTTOM_OF_RECT(r, 35, 35, 1, 1);
53
54 r.Union(gfx::Rect(30, 30, 10, 10));
55 TEST_INSIDE_RECT(r, 30, 30, 10, 10);
56 TEST_LEFT_OF_RECT(r, 30, 30, 10, 10);
57 TEST_RIGHT_OF_RECT(r, 30, 30, 10, 10);
58 TEST_TOP_OF_RECT(r, 30, 30, 10, 10);
59 TEST_BOTTOM_OF_RECT(r, 30, 30, 10, 10);
60
61 r.Union(gfx::Rect(31, 40, 10, 10));
62 EXPECT_FALSE(r.Contains(gfx::Point(30, 40)));
63 EXPECT_TRUE(r.Contains(gfx::Point(31, 40)));
64 EXPECT_FALSE(r.Contains(gfx::Point(40, 39)));
65 EXPECT_TRUE(r.Contains(gfx::Point(40, 40)));
66
67 TEST_INSIDE_RECT(r, 30, 30, 10, 10);
68 TEST_LEFT_OF_RECT(r, 30, 30, 10, 10);
69 TEST_RIGHT_OF_RECT(r, 30, 30, 10, 10);
70 TEST_TOP_OF_RECT(r, 30, 30, 10, 10);
71 TEST_INSIDE_RECT(r, 31, 40, 10, 10);
72 TEST_LEFT_OF_RECT(r, 31, 40, 10, 10);
73 TEST_RIGHT_OF_RECT(r, 31, 40, 10, 10);
74 TEST_BOTTOM_OF_RECT(r, 31, 40, 10, 10);
75
76 r.Union(gfx::Rect(42, 40, 10, 10));
77
78 TEST_INSIDE_RECT(r, 42, 40, 10, 10);
79 TEST_LEFT_OF_RECT(r, 42, 40, 10, 10);
80 TEST_RIGHT_OF_RECT(r, 42, 40, 10, 10);
81 TEST_TOP_OF_RECT(r, 42, 40, 10, 10);
82 TEST_BOTTOM_OF_RECT(r, 42, 40, 10, 10);
83
84 TEST_INSIDE_RECT(r, 30, 30, 10, 10);
85 TEST_LEFT_OF_RECT(r, 30, 30, 10, 10);
86 TEST_RIGHT_OF_RECT(r, 30, 30, 10, 10);
87 TEST_TOP_OF_RECT(r, 30, 30, 10, 10);
88 TEST_INSIDE_RECT(r, 31, 40, 10, 10);
89 TEST_LEFT_OF_RECT(r, 31, 40, 10, 10);
90 TEST_RIGHT_OF_RECT(r, 31, 40, 10, 10);
91 TEST_BOTTOM_OF_RECT(r, 31, 40, 10, 10);
92 }
93
94 TEST(RegionTest, EmptySpan) {
95 Region r;
96 r.Union(gfx::Rect(5, 0, 10, 10));
97 r.Union(gfx::Rect(0, 5, 10, 10));
98 r.Subtract(gfx::Rect(7, 7, 10, 0));
99
100 for (Region::Iterator it(r); it.has_rect(); it.next())
101 EXPECT_FALSE(it.rect().IsEmpty());
102 }
103
104 #define TEST_NO_INTERSECT(a, b) { \
105 Region ar = a; \
106 Region br = b; \
107 EXPECT_FALSE(ar.Intersects(br)); \
108 EXPECT_FALSE(br.Intersects(ar)); \
109 EXPECT_FALSE(ar.Intersects(b)); \
110 EXPECT_FALSE(br.Intersects(a)); \
111 }
112
113 #define TEST_INTERSECT(a, b) { \
114 Region ar = a; \
115 Region br = b; \
116 EXPECT_TRUE(ar.Intersects(br)); \
117 EXPECT_TRUE(br.Intersects(ar)); \
118 EXPECT_TRUE(ar.Intersects(b)); \
119 EXPECT_TRUE(br.Intersects(a)); \
120 }
121
122 TEST(RegionTest, IntersectsRegion) {
123 Region r;
124
125 TEST_NO_INTERSECT(gfx::Rect(), gfx::Rect());
126 TEST_NO_INTERSECT(gfx::Rect(), gfx::Rect(0, 0, 1, 1));
127 TEST_NO_INTERSECT(gfx::Rect(), gfx::Rect(1, 1, 1, 1));
128
129 TEST_NO_INTERSECT(gfx::Rect(-1, -1, 2, 2), gfx::Rect());
130
131 r.Union(gfx::Rect(0, 0, 1, 1));
132 TEST_NO_INTERSECT(r, gfx::Rect());
133 TEST_INTERSECT(r, gfx::Rect(0, 0, 1, 1));
134 TEST_INTERSECT(r, gfx::Rect(0, 0, 2, 2));
135 TEST_INTERSECT(r, gfx::Rect(-1, 0, 2, 2));
136 TEST_INTERSECT(r, gfx::Rect(-1, -1, 2, 2));
137 TEST_INTERSECT(r, gfx::Rect(0, -1, 2, 2));
138 TEST_INTERSECT(r, gfx::Rect(-1, -1, 3, 3));
139
140 r.Union(gfx::Rect(0, 0, 3, 3));
141 r.Union(gfx::Rect(10, 0, 3, 3));
142 r.Union(gfx::Rect(0, 10, 13, 3));
143 TEST_NO_INTERSECT(r, gfx::Rect());
144 TEST_INTERSECT(r, gfx::Rect(1, 1, 1, 1));
145 TEST_INTERSECT(r, gfx::Rect(0, 0, 2, 2));
146 TEST_INTERSECT(r, gfx::Rect(1, 0, 2, 2));
147 TEST_INTERSECT(r, gfx::Rect(1, 1, 2, 2));
148 TEST_INTERSECT(r, gfx::Rect(0, 1, 2, 2));
149 TEST_INTERSECT(r, gfx::Rect(0, 0, 3, 3));
150 TEST_INTERSECT(r, gfx::Rect(-1, -1, 2, 2));
151 TEST_INTERSECT(r, gfx::Rect(2, -1, 2, 2));
152 TEST_INTERSECT(r, gfx::Rect(2, 2, 2, 2));
153 TEST_INTERSECT(r, gfx::Rect(-1, 2, 2, 2));
154
155 TEST_INTERSECT(r, gfx::Rect(11, 1, 1, 1));
156 TEST_INTERSECT(r, gfx::Rect(10, 0, 2, 2));
157 TEST_INTERSECT(r, gfx::Rect(11, 0, 2, 2));
158 TEST_INTERSECT(r, gfx::Rect(11, 1, 2, 2));
159 TEST_INTERSECT(r, gfx::Rect(10, 1, 2, 2));
160 TEST_INTERSECT(r, gfx::Rect(10, 0, 3, 3));
161 TEST_INTERSECT(r, gfx::Rect(9, -1, 2, 2));
162 TEST_INTERSECT(r, gfx::Rect(12, -1, 2, 2));
163 TEST_INTERSECT(r, gfx::Rect(12, 2, 2, 2));
164 TEST_INTERSECT(r, gfx::Rect(9, 2, 2, 2));
165
166 TEST_INTERSECT(r, gfx::Rect(0, -1, 13, 5));
167 TEST_INTERSECT(r, gfx::Rect(1, -1, 11, 5));
168 TEST_INTERSECT(r, gfx::Rect(2, -1, 9, 5));
169 TEST_INTERSECT(r, gfx::Rect(2, -1, 8, 5));
170 TEST_INTERSECT(r, gfx::Rect(3, -1, 8, 5));
171 TEST_NO_INTERSECT(r, gfx::Rect(3, -1, 7, 5));
172
173 TEST_INTERSECT(r, gfx::Rect(0, 1, 13, 1));
174 TEST_INTERSECT(r, gfx::Rect(1, 1, 11, 1));
175 TEST_INTERSECT(r, gfx::Rect(2, 1, 9, 1));
176 TEST_INTERSECT(r, gfx::Rect(2, 1, 8, 1));
177 TEST_INTERSECT(r, gfx::Rect(3, 1, 8, 1));
178 TEST_NO_INTERSECT(r, gfx::Rect(3, 1, 7, 1));
179
180 TEST_INTERSECT(r, gfx::Rect(0, 0, 13, 13));
181 TEST_INTERSECT(r, gfx::Rect(0, 1, 13, 11));
182 TEST_INTERSECT(r, gfx::Rect(0, 2, 13, 9));
183 TEST_INTERSECT(r, gfx::Rect(0, 2, 13, 8));
184 TEST_INTERSECT(r, gfx::Rect(0, 3, 13, 8));
185 TEST_NO_INTERSECT(r, gfx::Rect(0, 3, 13, 7));
186 }
187
188 TEST(RegionTest, ReadPastFullSpanVectorInIntersectsTest) {
189 Region r;
190
191 // This region has enough spans to fill its allocated Vector exactly.
192 r.Union(gfx::Rect(400, 300, 1, 800));
193 r.Union(gfx::Rect(785, 585, 1, 1));
194 r.Union(gfx::Rect(787, 585, 1, 1));
195 r.Union(gfx::Rect(0, 587, 16, 162));
196 r.Union(gfx::Rect(26, 590, 300, 150));
197 r.Union(gfx::Rect(196, 750, 1, 1));
198 r.Union(gfx::Rect(0, 766, 1, 1));
199 r.Union(gfx::Rect(0, 782, 1, 1));
200 r.Union(gfx::Rect(745, 798, 1, 1));
201 r.Union(gfx::Rect(795, 882, 10, 585));
202 r.Union(gfx::Rect(100, 1499, 586, 1));
203 r.Union(gfx::Rect(100, 1500, 585, 784));
204 // This query rect goes past the bottom of the Region, causing the
205 // test to reach the last span and try go past it. It should not read
206 // memory off the end of the span Vector.
207 TEST_NO_INTERSECT(r, gfx::Rect(0, 2184, 1, 150));
208 }
209
210 #define TEST_NO_CONTAINS(a, b) \
211 { \
212 Region ar = a; \
213 Region br = b; \
214 EXPECT_FALSE(ar.Contains(br)); \
215 EXPECT_FALSE(ar.Contains(b)); \
216 }
217
218 #define TEST_CONTAINS(a, b) \
219 { \
220 Region ar = a; \
221 Region br = b; \
222 EXPECT_TRUE(ar.Contains(br)); \
223 EXPECT_TRUE(ar.Contains(b)); \
224 }
225
226 TEST(RegionTest, ContainsRegion) {
227 TEST_NO_CONTAINS(gfx::Rect(), gfx::Rect());
228 TEST_NO_CONTAINS(gfx::Rect(), gfx::Rect(0, 0, 1, 1));
229 TEST_NO_CONTAINS(gfx::Rect(), gfx::Rect(1, 1, 1, 1));
230
231 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(11, 10, 1, 1));
232 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(10, 11, 1, 1));
233 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(9, 10, 1, 1));
234 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(10, 9, 1, 1));
235 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(9, 9, 2, 2));
236 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(10, 9, 2, 2));
237 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(9, 10, 2, 2));
238 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(10, 10, 2, 2));
239 TEST_NO_CONTAINS(gfx::Rect(10, 10, 1, 1), gfx::Rect(9, 9, 3, 3));
240
241 Region hLines;
242 for (int i = 10; i < 20; i += 2)
243 hLines.Union(gfx::Rect(i, 10, 1, 10));
244
245 TEST_CONTAINS(gfx::Rect(10, 10, 9, 10), hLines);
246 TEST_NO_CONTAINS(gfx::Rect(10, 10, 9, 9), hLines);
247 TEST_NO_CONTAINS(gfx::Rect(10, 11, 9, 9), hLines);
248 TEST_NO_CONTAINS(gfx::Rect(10, 10, 8, 10), hLines);
249 TEST_NO_CONTAINS(gfx::Rect(11, 10, 8, 10), hLines);
250
251 Region vLines;
252 for (int i = 10; i < 20; i += 2)
253 vLines.Union(gfx::Rect(10, i, 10, 1));
254
255 TEST_CONTAINS(gfx::Rect(10, 10, 10, 9), vLines);
256 TEST_NO_CONTAINS(gfx::Rect(10, 10, 9, 9), vLines);
257 TEST_NO_CONTAINS(gfx::Rect(11, 10, 9, 9), vLines);
258 TEST_NO_CONTAINS(gfx::Rect(10, 10, 10, 8), vLines);
259 TEST_NO_CONTAINS(gfx::Rect(10, 11, 10, 8), vLines);
260
261 Region grid;
262 for (int i = 10; i < 20; i += 2)
263 for (int j = 10; j < 20; j += 2)
264 grid.Union(gfx::Rect(i, j, 1, 1));
265
266 TEST_CONTAINS(gfx::Rect(10, 10, 9, 9), grid);
267 TEST_NO_CONTAINS(gfx::Rect(10, 10, 9, 8), grid);
268 TEST_NO_CONTAINS(gfx::Rect(10, 11, 9, 8), grid);
269 TEST_NO_CONTAINS(gfx::Rect(10, 10, 8, 9), grid);
270 TEST_NO_CONTAINS(gfx::Rect(11, 10, 8, 9), grid);
271
272 TEST_CONTAINS(hLines, hLines);
273 TEST_CONTAINS(vLines, vLines);
274 TEST_NO_CONTAINS(vLines, hLines);
275 TEST_NO_CONTAINS(hLines, vLines);
276 TEST_CONTAINS(grid, grid);
277 TEST_CONTAINS(hLines, grid);
278 TEST_CONTAINS(vLines, grid);
279 TEST_NO_CONTAINS(grid, hLines);
280 TEST_NO_CONTAINS(grid, vLines);
281
282 for (int i = 10; i < 20; i += 2)
283 TEST_CONTAINS(hLines, gfx::Rect(i, 10, 1, 10));
284
285 for (int i = 10; i < 20; i += 2)
286 TEST_CONTAINS(vLines, gfx::Rect(10, i, 10, 1));
287
288 for (int i = 10; i < 20; i += 2)
289 for (int j = 10; j < 20; j += 2)
290 TEST_CONTAINS(grid, gfx::Rect(i, j, 1, 1));
291
292 Region container;
293 container.Union(gfx::Rect(0, 0, 40, 20));
294 container.Union(gfx::Rect(0, 20, 41, 20));
295 TEST_CONTAINS(container, gfx::Rect(5, 5, 30, 30));
296
297 container = Region();
298 container.Union(gfx::Rect(0, 0, 10, 10));
299 container.Union(gfx::Rect(0, 30, 10, 10));
300 container.Union(gfx::Rect(30, 30, 10, 10));
301 container.Union(gfx::Rect(30, 0, 10, 10));
302 TEST_NO_CONTAINS(container, gfx::Rect(5, 5, 30, 30));
303
304 container = Region();
305 container.Union(gfx::Rect(0, 0, 10, 10));
306 container.Union(gfx::Rect(0, 30, 10, 10));
307 container.Union(gfx::Rect(30, 0, 10, 40));
308 TEST_NO_CONTAINS(container, gfx::Rect(5, 5, 30, 30));
309
310 container = Region();
311 container.Union(gfx::Rect(30, 0, 10, 10));
312 container.Union(gfx::Rect(30, 30, 10, 10));
313 container.Union(gfx::Rect(0, 0, 10, 40));
314 TEST_NO_CONTAINS(container, gfx::Rect(5, 5, 30, 30));
315
316 container = Region();
317 container.Union(gfx::Rect(0, 0, 10, 40));
318 container.Union(gfx::Rect(30, 0, 10, 40));
319 TEST_NO_CONTAINS(container, gfx::Rect(5, 5, 30, 30));
320
321 container = Region();
322 container.Union(gfx::Rect(0, 0, 40, 40));
323 TEST_NO_CONTAINS(container, gfx::Rect(10, -1, 20, 10));
324
325 container = Region();
326 container.Union(gfx::Rect(0, 0, 40, 40));
327 TEST_NO_CONTAINS(container, gfx::Rect(10, 31, 20, 10));
328
329 container = Region();
330 container.Union(gfx::Rect(0, 0, 40, 20));
331 container.Union(gfx::Rect(0, 20, 41, 20));
332 TEST_NO_CONTAINS(container, gfx::Rect(-1, 10, 10, 20));
333
334 container = Region();
335 container.Union(gfx::Rect(0, 0, 40, 20));
336 container.Union(gfx::Rect(0, 20, 41, 20));
337 TEST_NO_CONTAINS(container, gfx::Rect(31, 10, 10, 20));
338
339 container = Region();
340 container.Union(gfx::Rect(0, 0, 40, 40));
341 container.Subtract(gfx::Rect(0, 20, 60, 0));
342 TEST_NO_CONTAINS(container, gfx::Rect(31, 10, 10, 20));
343
344 container = Region();
345 container.Union(gfx::Rect(0, 0, 60, 20));
346 container.Union(gfx::Rect(30, 20, 10, 20));
347 TEST_NO_CONTAINS(container, gfx::Rect(0, 0, 10, 39));
348 TEST_NO_CONTAINS(container, gfx::Rect(0, 0, 10, 40));
349 TEST_NO_CONTAINS(container, gfx::Rect(0, 0, 10, 41));
350 TEST_NO_CONTAINS(container, gfx::Rect(29, 0, 10, 39));
351 TEST_CONTAINS(container, gfx::Rect(30, 0, 10, 40));
352 TEST_NO_CONTAINS(container, gfx::Rect(31, 0, 10, 41));
353 TEST_NO_CONTAINS(container, gfx::Rect(49, 0, 10, 39));
354 TEST_NO_CONTAINS(container, gfx::Rect(50, 0, 10, 40));
355 TEST_NO_CONTAINS(container, gfx::Rect(51, 0, 10, 41));
356
357 container = Region();
358 container.Union(gfx::Rect(30, 0, 10, 20));
359 container.Union(gfx::Rect(0, 20, 60, 20));
360 TEST_NO_CONTAINS(container, gfx::Rect(0, 0, 10, 39));
361 TEST_NO_CONTAINS(container, gfx::Rect(0, 0, 10, 40));
362 TEST_NO_CONTAINS(container, gfx::Rect(0, 0, 10, 41));
363 TEST_NO_CONTAINS(container, gfx::Rect(29, 0, 10, 39));
364 TEST_CONTAINS(container, gfx::Rect(30, 0, 10, 40));
365 TEST_NO_CONTAINS(container, gfx::Rect(31, 0, 10, 41));
366 TEST_NO_CONTAINS(container, gfx::Rect(49, 0, 10, 39));
367 TEST_NO_CONTAINS(container, gfx::Rect(50, 0, 10, 40));
368 TEST_NO_CONTAINS(container, gfx::Rect(51, 0, 10, 41));
369 }
370
371 TEST(RegionTest, Union) {
372 Region r;
373 Region r2;
374
375 // A rect uniting a contained rect does not change the region.
376 r2 = r = gfx::Rect(0, 0, 50, 50);
377 r2.Union(gfx::Rect(20, 20, 10, 10));
378 EXPECT_EQ(r, r2);
379
380 // A rect uniting a containing rect gives back the containing rect.
381 r = gfx::Rect(0, 0, 50, 50);
382 r.Union(gfx::Rect(0, 0, 100, 100));
383 EXPECT_EQ(Region(gfx::Rect(0, 0, 100, 100)), r);
384
385 // A complex region uniting a contained rect does not change the region.
386 r = gfx::Rect(0, 0, 50, 50);
387 r.Union(gfx::Rect(100, 0, 50, 50));
388 r2 = r;
389 r2.Union(gfx::Rect(20, 20, 10, 10));
390 EXPECT_EQ(r, r2);
391
392 // A complex region uniting a containing rect gives back the containing rect.
393 r = gfx::Rect(0, 0, 50, 50);
394 r.Union(gfx::Rect(100, 0, 50, 50));
395 r.Union(gfx::Rect(0, 0, 500, 500));
396 EXPECT_EQ(Region(gfx::Rect(0, 0, 500, 500)), r);
397 }
398
399 TEST(RegionTest, IsEmpty) {
400 EXPECT_TRUE(Region().IsEmpty());
401 EXPECT_TRUE(Region(gfx::Rect()).IsEmpty());
402 EXPECT_TRUE(Region(Region()).IsEmpty());
403 EXPECT_TRUE(Region(gfx::Rect(10, 10, 10, 0)).IsEmpty());
404 EXPECT_TRUE(Region(gfx::Rect(10, 10, 0, 10)).IsEmpty());
405 EXPECT_TRUE(Region(gfx::Rect(-10, 10, 10, 0)).IsEmpty());
406 EXPECT_TRUE(Region(gfx::Rect(-10, 10, 0, 10)).IsEmpty());
407 EXPECT_FALSE(Region(gfx::Rect(-1, -1, 1, 1)).IsEmpty());
408 EXPECT_FALSE(Region(gfx::Rect(0, 0, 1, 1)).IsEmpty());
409 EXPECT_FALSE(Region(gfx::Rect(0, 0, 2, 2)).IsEmpty());
410
411 EXPECT_TRUE(SkIRect::MakeXYWH(10, 10, 10, 0).isEmpty());
412 EXPECT_TRUE(SkIRect::MakeXYWH(10, 10, 0, 10).isEmpty());
413 EXPECT_TRUE(SkIRect::MakeXYWH(-10, 10, 10, 0).isEmpty());
414 EXPECT_TRUE(SkIRect::MakeXYWH(-10, 10, 0, 10).isEmpty());
415 EXPECT_FALSE(SkIRect::MakeXYWH(-1, -1, 1, 1).isEmpty());
416 EXPECT_FALSE(SkIRect::MakeXYWH(0, 0, 1, 1).isEmpty());
417 EXPECT_FALSE(SkIRect::MakeXYWH(0, 0, 2, 2).isEmpty());
418 }
419
420 } // namespace
OLDNEW
« no previous file with comments | « cc/region.cc ('k') | cc/render_surface_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698