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.
5 #include "cc/base/tiling_data.h"
10 #include "cc/test/geometry_test_utils.h"
11 #include "testing/gtest/include/gtest/gtest.h"
16 int NumTiles(const gfx::Size
& max_texture_size
,
17 const gfx::Rect
& tiling_rect
,
18 bool has_border_texels
) {
19 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
20 int num_tiles
= tiling
.num_tiles_x() * tiling
.num_tiles_y();
22 // Assert no overflow.
23 EXPECT_GE(num_tiles
, 0);
25 EXPECT_EQ(num_tiles
/ tiling
.num_tiles_x(), tiling
.num_tiles_y());
30 int XIndex(const gfx::Size
& max_texture_size
,
31 const gfx::Rect
& tiling_rect
,
32 bool has_border_texels
,
34 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
35 return tiling
.TileXIndexFromSrcCoord(x_coord
);
38 int YIndex(const gfx::Size
& max_texture_size
,
39 const gfx::Rect
& tiling_rect
,
40 bool has_border_texels
,
42 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
43 return tiling
.TileYIndexFromSrcCoord(y_coord
);
46 int MinBorderXIndex(const gfx::Size
& max_texture_size
,
47 const gfx::Rect
& tiling_rect
,
48 bool has_border_texels
,
50 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
51 return tiling
.FirstBorderTileXIndexFromSrcCoord(x_coord
);
54 int MinBorderYIndex(const gfx::Size
& max_texture_size
,
55 const gfx::Rect
& tiling_rect
,
56 bool has_border_texels
,
58 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
59 return tiling
.FirstBorderTileYIndexFromSrcCoord(y_coord
);
62 int MaxBorderXIndex(const gfx::Size
& max_texture_size
,
63 const gfx::Rect
& tiling_rect
,
64 bool has_border_texels
,
66 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
67 return tiling
.LastBorderTileXIndexFromSrcCoord(x_coord
);
70 int MaxBorderYIndex(const gfx::Size
& max_texture_size
,
71 const gfx::Rect
& tiling_rect
,
72 bool has_border_texels
,
74 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
75 return tiling
.LastBorderTileYIndexFromSrcCoord(y_coord
);
78 int PosX(const gfx::Size
& max_texture_size
,
79 const gfx::Rect
& tiling_rect
,
80 bool has_border_texels
,
82 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
83 return tiling
.TilePositionX(x_index
);
86 int PosY(const gfx::Size
& max_texture_size
,
87 const gfx::Rect
& tiling_rect
,
88 bool has_border_texels
,
90 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
91 return tiling
.TilePositionY(y_index
);
94 int SizeX(const gfx::Size
& max_texture_size
,
95 const gfx::Rect
& tiling_rect
,
96 bool has_border_texels
,
98 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
99 return tiling
.TileSizeX(x_index
);
102 int SizeY(const gfx::Size
& max_texture_size
,
103 const gfx::Rect
& tiling_rect
,
104 bool has_border_texels
,
106 TilingData
tiling(max_texture_size
, tiling_rect
, has_border_texels
);
107 return tiling
.TileSizeY(y_index
);
110 class TilingDataTest
: public ::testing::TestWithParam
<gfx::Point
> {};
112 TEST_P(TilingDataTest
, NumTiles_NoTiling
) {
113 gfx::Point origin
= GetParam();
117 NumTiles(gfx::Size(16, 16), gfx::Rect(origin
, gfx::Size(16, 16)), false));
120 NumTiles(gfx::Size(16, 16), gfx::Rect(origin
, gfx::Size(15, 15)), true));
123 NumTiles(gfx::Size(16, 16), gfx::Rect(origin
, gfx::Size(16, 16)), true));
126 NumTiles(gfx::Size(16, 16), gfx::Rect(origin
, gfx::Size(1, 16)), false));
129 NumTiles(gfx::Size(15, 15), gfx::Rect(origin
, gfx::Size(15, 15)), true));
132 NumTiles(gfx::Size(32, 16), gfx::Rect(origin
, gfx::Size(32, 16)), false));
135 NumTiles(gfx::Size(32, 16), gfx::Rect(origin
, gfx::Size(32, 16)), true));
138 TEST_P(TilingDataTest
, NumTiles_TilingNoBorders
) {
139 gfx::Point origin
= GetParam();
142 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(0, 0)), false));
144 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(4, 0)), false));
146 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(0, 4)), false));
148 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(4, 0)), false));
150 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(0, 4)), false));
152 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(1, 1)), false));
155 1, NumTiles(gfx::Size(1, 1), gfx::Rect(origin
, gfx::Size(1, 1)), false));
157 2, NumTiles(gfx::Size(1, 1), gfx::Rect(origin
, gfx::Size(1, 2)), false));
159 2, NumTiles(gfx::Size(1, 1), gfx::Rect(origin
, gfx::Size(2, 1)), false));
161 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(1, 1)), false));
163 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(1, 2)), false));
165 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(2, 1)), false));
167 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(2, 2)), false));
169 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 3)), false));
172 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(1, 4)), false));
174 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(2, 4)), false));
176 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(3, 4)), false));
178 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(4, 4)), false));
180 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(5, 4)), false));
182 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(6, 4)), false));
184 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(7, 4)), false));
186 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(8, 4)), false));
188 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(9, 4)), false));
190 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(10, 4)), false));
192 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(11, 4)), false));
195 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(1, 5)), false));
197 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(2, 5)), false));
199 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(3, 5)), false));
201 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(4, 5)), false));
203 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), false));
205 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 5)), false));
207 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(7, 5)), false));
209 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 5)), false));
211 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(9, 5)), false));
213 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 5)), false));
215 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(11, 5)), false));
219 NumTiles(gfx::Size(16, 16), gfx::Rect(origin
, gfx::Size(16, 16)), false));
222 NumTiles(gfx::Size(17, 17), gfx::Rect(origin
, gfx::Size(16, 16)), false));
225 NumTiles(gfx::Size(15, 15), gfx::Rect(origin
, gfx::Size(16, 16)), false));
228 NumTiles(gfx::Size(8, 8), gfx::Rect(origin
, gfx::Size(16, 16)), false));
231 NumTiles(gfx::Size(8, 8), gfx::Rect(origin
, gfx::Size(17, 16)), false));
235 NumTiles(gfx::Size(5, 8), gfx::Rect(origin
, gfx::Size(17, 16)), false));
238 TEST_P(TilingDataTest
, NumTiles_TilingWithBorders
) {
239 gfx::Point origin
= GetParam();
242 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(0, 0)), true));
244 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(4, 0)), true));
246 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(0, 4)), true));
248 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(4, 0)), true));
250 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(0, 4)), true));
252 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin
, gfx::Size(1, 1)), true));
255 1, NumTiles(gfx::Size(1, 1), gfx::Rect(origin
, gfx::Size(1, 1)), true));
257 0, NumTiles(gfx::Size(1, 1), gfx::Rect(origin
, gfx::Size(1, 2)), true));
259 0, NumTiles(gfx::Size(1, 1), gfx::Rect(origin
, gfx::Size(2, 1)), true));
261 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(1, 1)), true));
263 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(1, 2)), true));
265 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(2, 1)), true));
267 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin
, gfx::Size(2, 2)), true));
270 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 3)), true));
272 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(2, 3)), true));
274 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 3)), true));
276 2, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(4, 3)), true));
278 3, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(5, 3)), true));
280 4, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 3)), true));
282 5, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(7, 3)), true));
285 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(1, 4)), true));
287 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(2, 4)), true));
289 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(3, 4)), true));
291 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(4, 4)), true));
293 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(5, 4)), true));
295 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(6, 4)), true));
297 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(7, 4)), true));
299 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(8, 4)), true));
301 4, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(9, 4)), true));
303 4, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(10, 4)), true));
305 5, NumTiles(gfx::Size(4, 4), gfx::Rect(origin
, gfx::Size(11, 4)), true));
308 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(1, 5)), true));
310 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(2, 5)), true));
312 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(3, 5)), true));
314 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(4, 5)), true));
316 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), true));
318 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 5)), true));
320 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(7, 5)), true));
322 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 5)), true));
324 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(9, 5)), true));
326 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 5)), true));
328 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(11, 5)), true));
332 NumTiles(gfx::Size(8, 5), gfx::Rect(origin
, gfx::Size(16, 32)), true));
335 TEST_P(TilingDataTest
, TileXIndexFromSrcCoord
) {
336 gfx::Point origin
= GetParam();
339 XIndex(gfx::Size(3, 3),
340 gfx::Rect(origin
, gfx::Size(10, 10)),
344 XIndex(gfx::Size(3, 3),
345 gfx::Rect(origin
, gfx::Size(10, 10)),
349 XIndex(gfx::Size(3, 3),
350 gfx::Rect(origin
, gfx::Size(10, 10)),
354 XIndex(gfx::Size(3, 3),
355 gfx::Rect(origin
, gfx::Size(10, 10)),
359 XIndex(gfx::Size(3, 3),
360 gfx::Rect(origin
, gfx::Size(10, 10)),
364 XIndex(gfx::Size(3, 3),
365 gfx::Rect(origin
, gfx::Size(10, 10)),
369 XIndex(gfx::Size(3, 3),
370 gfx::Rect(origin
, gfx::Size(10, 10)),
374 XIndex(gfx::Size(3, 3),
375 gfx::Rect(origin
, gfx::Size(10, 10)),
379 XIndex(gfx::Size(3, 3),
380 gfx::Rect(origin
, gfx::Size(10, 10)),
384 XIndex(gfx::Size(3, 3),
385 gfx::Rect(origin
, gfx::Size(10, 10)),
389 XIndex(gfx::Size(3, 3),
390 gfx::Rect(origin
, gfx::Size(10, 10)),
394 XIndex(gfx::Size(3, 3),
395 gfx::Rect(origin
, gfx::Size(10, 10)),
400 XIndex(gfx::Size(3, 3),
401 gfx::Rect(origin
, gfx::Size(10, 10)),
405 XIndex(gfx::Size(3, 3),
406 gfx::Rect(origin
, gfx::Size(10, 10)),
410 XIndex(gfx::Size(3, 3),
411 gfx::Rect(origin
, gfx::Size(10, 10)),
415 XIndex(gfx::Size(3, 3),
416 gfx::Rect(origin
, gfx::Size(10, 10)),
420 XIndex(gfx::Size(3, 3),
421 gfx::Rect(origin
, gfx::Size(10, 10)),
425 XIndex(gfx::Size(3, 3),
426 gfx::Rect(origin
, gfx::Size(10, 10)),
430 XIndex(gfx::Size(3, 3),
431 gfx::Rect(origin
, gfx::Size(10, 10)),
435 XIndex(gfx::Size(3, 3),
436 gfx::Rect(origin
, gfx::Size(10, 10)),
440 XIndex(gfx::Size(3, 3),
441 gfx::Rect(origin
, gfx::Size(10, 10)),
445 XIndex(gfx::Size(3, 3),
446 gfx::Rect(origin
, gfx::Size(10, 10)),
450 XIndex(gfx::Size(3, 3),
451 gfx::Rect(origin
, gfx::Size(10, 10)),
455 XIndex(gfx::Size(3, 3),
456 gfx::Rect(origin
, gfx::Size(10, 10)),
461 XIndex(gfx::Size(1, 1),
462 gfx::Rect(origin
, gfx::Size(1, 1)),
466 XIndex(gfx::Size(2, 2),
467 gfx::Rect(origin
, gfx::Size(2, 2)),
471 XIndex(gfx::Size(2, 2),
472 gfx::Rect(origin
, gfx::Size(2, 2)),
476 XIndex(gfx::Size(3, 3),
477 gfx::Rect(origin
, gfx::Size(3, 3)),
481 XIndex(gfx::Size(3, 3),
482 gfx::Rect(origin
, gfx::Size(3, 3)),
486 XIndex(gfx::Size(3, 3),
487 gfx::Rect(origin
, gfx::Size(3, 3)),
492 XIndex(gfx::Size(3, 3),
493 gfx::Rect(origin
, gfx::Size(4, 3)),
497 XIndex(gfx::Size(3, 3),
498 gfx::Rect(origin
, gfx::Size(4, 3)),
502 XIndex(gfx::Size(3, 3),
503 gfx::Rect(origin
, gfx::Size(4, 3)),
507 XIndex(gfx::Size(3, 3),
508 gfx::Rect(origin
, gfx::Size(4, 3)),
513 XIndex(gfx::Size(1, 1),
514 gfx::Rect(origin
, gfx::Size(1, 1)),
518 XIndex(gfx::Size(2, 2),
519 gfx::Rect(origin
, gfx::Size(2, 2)),
523 XIndex(gfx::Size(2, 2),
524 gfx::Rect(origin
, gfx::Size(2, 2)),
528 XIndex(gfx::Size(3, 3),
529 gfx::Rect(origin
, gfx::Size(3, 3)),
533 XIndex(gfx::Size(3, 3),
534 gfx::Rect(origin
, gfx::Size(3, 3)),
538 XIndex(gfx::Size(3, 3),
539 gfx::Rect(origin
, gfx::Size(3, 3)),
544 XIndex(gfx::Size(3, 3),
545 gfx::Rect(origin
, gfx::Size(4, 3)),
549 XIndex(gfx::Size(3, 3),
550 gfx::Rect(origin
, gfx::Size(4, 3)),
554 XIndex(gfx::Size(3, 3),
555 gfx::Rect(origin
, gfx::Size(4, 3)),
559 XIndex(gfx::Size(3, 3),
560 gfx::Rect(origin
, gfx::Size(4, 3)),
565 TEST_P(TilingDataTest
, FirstBorderTileXIndexFromSrcCoord
) {
566 gfx::Point origin
= GetParam();
569 MinBorderXIndex(gfx::Size(3, 3),
570 gfx::Rect(origin
, gfx::Size(10, 10)),
574 MinBorderXIndex(gfx::Size(3, 3),
575 gfx::Rect(origin
, gfx::Size(10, 10)),
579 MinBorderXIndex(gfx::Size(3, 3),
580 gfx::Rect(origin
, gfx::Size(10, 10)),
584 MinBorderXIndex(gfx::Size(3, 3),
585 gfx::Rect(origin
, gfx::Size(10, 10)),
589 MinBorderXIndex(gfx::Size(3, 3),
590 gfx::Rect(origin
, gfx::Size(10, 10)),
594 MinBorderXIndex(gfx::Size(3, 3),
595 gfx::Rect(origin
, gfx::Size(10, 10)),
599 MinBorderXIndex(gfx::Size(3, 3),
600 gfx::Rect(origin
, gfx::Size(10, 10)),
604 MinBorderXIndex(gfx::Size(3, 3),
605 gfx::Rect(origin
, gfx::Size(10, 10)),
609 MinBorderXIndex(gfx::Size(3, 3),
610 gfx::Rect(origin
, gfx::Size(10, 10)),
614 MinBorderXIndex(gfx::Size(3, 3),
615 gfx::Rect(origin
, gfx::Size(10, 10)),
619 MinBorderXIndex(gfx::Size(3, 3),
620 gfx::Rect(origin
, gfx::Size(10, 10)),
624 MinBorderXIndex(gfx::Size(3, 3),
625 gfx::Rect(origin
, gfx::Size(10, 10)),
630 MinBorderXIndex(gfx::Size(3, 3),
631 gfx::Rect(origin
, gfx::Size(10, 10)),
635 MinBorderXIndex(gfx::Size(3, 3),
636 gfx::Rect(origin
, gfx::Size(10, 10)),
640 MinBorderXIndex(gfx::Size(3, 3),
641 gfx::Rect(origin
, gfx::Size(10, 10)),
645 MinBorderXIndex(gfx::Size(3, 3),
646 gfx::Rect(origin
, gfx::Size(10, 10)),
650 MinBorderXIndex(gfx::Size(3, 3),
651 gfx::Rect(origin
, gfx::Size(10, 10)),
655 MinBorderXIndex(gfx::Size(3, 3),
656 gfx::Rect(origin
, gfx::Size(10, 10)),
660 MinBorderXIndex(gfx::Size(3, 3),
661 gfx::Rect(origin
, gfx::Size(10, 10)),
665 MinBorderXIndex(gfx::Size(3, 3),
666 gfx::Rect(origin
, gfx::Size(10, 10)),
670 MinBorderXIndex(gfx::Size(3, 3),
671 gfx::Rect(origin
, gfx::Size(10, 10)),
675 MinBorderXIndex(gfx::Size(3, 3),
676 gfx::Rect(origin
, gfx::Size(10, 10)),
680 MinBorderXIndex(gfx::Size(3, 3),
681 gfx::Rect(origin
, gfx::Size(10, 10)),
685 MinBorderXIndex(gfx::Size(3, 3),
686 gfx::Rect(origin
, gfx::Size(10, 10)),
691 MinBorderXIndex(gfx::Size(1, 1),
692 gfx::Rect(origin
, gfx::Size(1, 1)),
696 MinBorderXIndex(gfx::Size(2, 2),
697 gfx::Rect(origin
, gfx::Size(2, 2)),
701 MinBorderXIndex(gfx::Size(2, 2),
702 gfx::Rect(origin
, gfx::Size(2, 2)),
706 MinBorderXIndex(gfx::Size(3, 3),
707 gfx::Rect(origin
, gfx::Size(3, 3)),
711 MinBorderXIndex(gfx::Size(3, 3),
712 gfx::Rect(origin
, gfx::Size(3, 3)),
716 MinBorderXIndex(gfx::Size(3, 3),
717 gfx::Rect(origin
, gfx::Size(3, 3)),
722 MinBorderXIndex(gfx::Size(3, 3),
723 gfx::Rect(origin
, gfx::Size(4, 3)),
727 MinBorderXIndex(gfx::Size(3, 3),
728 gfx::Rect(origin
, gfx::Size(4, 3)),
732 MinBorderXIndex(gfx::Size(3, 3),
733 gfx::Rect(origin
, gfx::Size(4, 3)),
737 MinBorderXIndex(gfx::Size(3, 3),
738 gfx::Rect(origin
, gfx::Size(4, 3)),
743 MinBorderXIndex(gfx::Size(1, 1),
744 gfx::Rect(origin
, gfx::Size(1, 1)),
748 MinBorderXIndex(gfx::Size(2, 2),
749 gfx::Rect(origin
, gfx::Size(2, 2)),
753 MinBorderXIndex(gfx::Size(2, 2),
754 gfx::Rect(origin
, gfx::Size(2, 2)),
758 MinBorderXIndex(gfx::Size(3, 3),
759 gfx::Rect(origin
, gfx::Size(3, 3)),
763 MinBorderXIndex(gfx::Size(3, 3),
764 gfx::Rect(origin
, gfx::Size(3, 3)),
768 MinBorderXIndex(gfx::Size(3, 3),
769 gfx::Rect(origin
, gfx::Size(3, 3)),
774 MinBorderXIndex(gfx::Size(3, 3),
775 gfx::Rect(origin
, gfx::Size(4, 3)),
779 MinBorderXIndex(gfx::Size(3, 3),
780 gfx::Rect(origin
, gfx::Size(4, 3)),
784 MinBorderXIndex(gfx::Size(3, 3),
785 gfx::Rect(origin
, gfx::Size(4, 3)),
789 MinBorderXIndex(gfx::Size(3, 3),
790 gfx::Rect(origin
, gfx::Size(4, 3)),
795 TEST_P(TilingDataTest
, LastBorderTileXIndexFromSrcCoord
) {
796 gfx::Point origin
= GetParam();
799 MaxBorderXIndex(gfx::Size(3, 3),
800 gfx::Rect(origin
, gfx::Size(10, 10)),
804 MaxBorderXIndex(gfx::Size(3, 3),
805 gfx::Rect(origin
, gfx::Size(10, 10)),
809 MaxBorderXIndex(gfx::Size(3, 3),
810 gfx::Rect(origin
, gfx::Size(10, 10)),
814 MaxBorderXIndex(gfx::Size(3, 3),
815 gfx::Rect(origin
, gfx::Size(10, 10)),
819 MaxBorderXIndex(gfx::Size(3, 3),
820 gfx::Rect(origin
, gfx::Size(10, 10)),
824 MaxBorderXIndex(gfx::Size(3, 3),
825 gfx::Rect(origin
, gfx::Size(10, 10)),
829 MaxBorderXIndex(gfx::Size(3, 3),
830 gfx::Rect(origin
, gfx::Size(10, 10)),
834 MaxBorderXIndex(gfx::Size(3, 3),
835 gfx::Rect(origin
, gfx::Size(10, 10)),
839 MaxBorderXIndex(gfx::Size(3, 3),
840 gfx::Rect(origin
, gfx::Size(10, 10)),
844 MaxBorderXIndex(gfx::Size(3, 3),
845 gfx::Rect(origin
, gfx::Size(10, 10)),
849 MaxBorderXIndex(gfx::Size(3, 3),
850 gfx::Rect(origin
, gfx::Size(10, 10)),
854 MaxBorderXIndex(gfx::Size(3, 3),
855 gfx::Rect(origin
, gfx::Size(10, 10)),
860 MaxBorderXIndex(gfx::Size(3, 3),
861 gfx::Rect(origin
, gfx::Size(10, 10)),
865 MaxBorderXIndex(gfx::Size(3, 3),
866 gfx::Rect(origin
, gfx::Size(10, 10)),
870 MaxBorderXIndex(gfx::Size(3, 3),
871 gfx::Rect(origin
, gfx::Size(10, 10)),
875 MaxBorderXIndex(gfx::Size(3, 3),
876 gfx::Rect(origin
, gfx::Size(10, 10)),
880 MaxBorderXIndex(gfx::Size(3, 3),
881 gfx::Rect(origin
, gfx::Size(10, 10)),
885 MaxBorderXIndex(gfx::Size(3, 3),
886 gfx::Rect(origin
, gfx::Size(10, 10)),
890 MaxBorderXIndex(gfx::Size(3, 3),
891 gfx::Rect(origin
, gfx::Size(10, 10)),
895 MaxBorderXIndex(gfx::Size(3, 3),
896 gfx::Rect(origin
, gfx::Size(10, 10)),
900 MaxBorderXIndex(gfx::Size(3, 3),
901 gfx::Rect(origin
, gfx::Size(10, 10)),
905 MaxBorderXIndex(gfx::Size(3, 3),
906 gfx::Rect(origin
, gfx::Size(10, 10)),
910 MaxBorderXIndex(gfx::Size(3, 3),
911 gfx::Rect(origin
, gfx::Size(10, 10)),
915 MaxBorderXIndex(gfx::Size(3, 3),
916 gfx::Rect(origin
, gfx::Size(10, 10)),
921 MaxBorderXIndex(gfx::Size(1, 1),
922 gfx::Rect(origin
, gfx::Size(1, 1)),
926 MaxBorderXIndex(gfx::Size(2, 2),
927 gfx::Rect(origin
, gfx::Size(2, 2)),
931 MaxBorderXIndex(gfx::Size(2, 2),
932 gfx::Rect(origin
, gfx::Size(2, 2)),
936 MaxBorderXIndex(gfx::Size(3, 3),
937 gfx::Rect(origin
, gfx::Size(3, 3)),
941 MaxBorderXIndex(gfx::Size(3, 3),
942 gfx::Rect(origin
, gfx::Size(3, 3)),
946 MaxBorderXIndex(gfx::Size(3, 3),
947 gfx::Rect(origin
, gfx::Size(3, 3)),
952 MaxBorderXIndex(gfx::Size(3, 3),
953 gfx::Rect(origin
, gfx::Size(4, 3)),
957 MaxBorderXIndex(gfx::Size(3, 3),
958 gfx::Rect(origin
, gfx::Size(4, 3)),
962 MaxBorderXIndex(gfx::Size(3, 3),
963 gfx::Rect(origin
, gfx::Size(4, 3)),
967 MaxBorderXIndex(gfx::Size(3, 3),
968 gfx::Rect(origin
, gfx::Size(4, 3)),
973 MaxBorderXIndex(gfx::Size(1, 1),
974 gfx::Rect(origin
, gfx::Size(1, 1)),
978 MaxBorderXIndex(gfx::Size(2, 2),
979 gfx::Rect(origin
, gfx::Size(2, 2)),
983 MaxBorderXIndex(gfx::Size(2, 2),
984 gfx::Rect(origin
, gfx::Size(2, 2)),
988 MaxBorderXIndex(gfx::Size(3, 3),
989 gfx::Rect(origin
, gfx::Size(3, 3)),
993 MaxBorderXIndex(gfx::Size(3, 3),
994 gfx::Rect(origin
, gfx::Size(3, 3)),
998 MaxBorderXIndex(gfx::Size(3, 3),
999 gfx::Rect(origin
, gfx::Size(3, 3)),
1004 MaxBorderXIndex(gfx::Size(3, 3),
1005 gfx::Rect(origin
, gfx::Size(4, 3)),
1009 MaxBorderXIndex(gfx::Size(3, 3),
1010 gfx::Rect(origin
, gfx::Size(4, 3)),
1014 MaxBorderXIndex(gfx::Size(3, 3),
1015 gfx::Rect(origin
, gfx::Size(4, 3)),
1019 MaxBorderXIndex(gfx::Size(3, 3),
1020 gfx::Rect(origin
, gfx::Size(4, 3)),
1025 TEST_P(TilingDataTest
, TileYIndexFromSrcCoord
) {
1026 gfx::Point origin
= GetParam();
1029 YIndex(gfx::Size(3, 3),
1030 gfx::Rect(origin
, gfx::Size(10, 10)),
1034 YIndex(gfx::Size(3, 3),
1035 gfx::Rect(origin
, gfx::Size(10, 10)),
1039 YIndex(gfx::Size(3, 3),
1040 gfx::Rect(origin
, gfx::Size(10, 10)),
1044 YIndex(gfx::Size(3, 3),
1045 gfx::Rect(origin
, gfx::Size(10, 10)),
1049 YIndex(gfx::Size(3, 3),
1050 gfx::Rect(origin
, gfx::Size(10, 10)),
1054 YIndex(gfx::Size(3, 3),
1055 gfx::Rect(origin
, gfx::Size(10, 10)),
1059 YIndex(gfx::Size(3, 3),
1060 gfx::Rect(origin
, gfx::Size(10, 10)),
1064 YIndex(gfx::Size(3, 3),
1065 gfx::Rect(origin
, gfx::Size(10, 10)),
1069 YIndex(gfx::Size(3, 3),
1070 gfx::Rect(origin
, gfx::Size(10, 10)),
1074 YIndex(gfx::Size(3, 3),
1075 gfx::Rect(origin
, gfx::Size(10, 10)),
1079 YIndex(gfx::Size(3, 3),
1080 gfx::Rect(origin
, gfx::Size(10, 10)),
1084 YIndex(gfx::Size(3, 3),
1085 gfx::Rect(origin
, gfx::Size(10, 10)),
1090 YIndex(gfx::Size(3, 3),
1091 gfx::Rect(origin
, gfx::Size(10, 10)),
1095 YIndex(gfx::Size(3, 3),
1096 gfx::Rect(origin
, gfx::Size(10, 10)),
1100 YIndex(gfx::Size(3, 3),
1101 gfx::Rect(origin
, gfx::Size(10, 10)),
1105 YIndex(gfx::Size(3, 3),
1106 gfx::Rect(origin
, gfx::Size(10, 10)),
1110 YIndex(gfx::Size(3, 3),
1111 gfx::Rect(origin
, gfx::Size(10, 10)),
1115 YIndex(gfx::Size(3, 3),
1116 gfx::Rect(origin
, gfx::Size(10, 10)),
1120 YIndex(gfx::Size(3, 3),
1121 gfx::Rect(origin
, gfx::Size(10, 10)),
1125 YIndex(gfx::Size(3, 3),
1126 gfx::Rect(origin
, gfx::Size(10, 10)),
1130 YIndex(gfx::Size(3, 3),
1131 gfx::Rect(origin
, gfx::Size(10, 10)),
1135 YIndex(gfx::Size(3, 3),
1136 gfx::Rect(origin
, gfx::Size(10, 10)),
1140 YIndex(gfx::Size(3, 3),
1141 gfx::Rect(origin
, gfx::Size(10, 10)),
1145 YIndex(gfx::Size(3, 3),
1146 gfx::Rect(origin
, gfx::Size(10, 10)),
1151 YIndex(gfx::Size(1, 1),
1152 gfx::Rect(origin
, gfx::Size(1, 1)),
1156 YIndex(gfx::Size(2, 2),
1157 gfx::Rect(origin
, gfx::Size(2, 2)),
1161 YIndex(gfx::Size(2, 2),
1162 gfx::Rect(origin
, gfx::Size(2, 2)),
1166 YIndex(gfx::Size(3, 3),
1167 gfx::Rect(origin
, gfx::Size(3, 3)),
1171 YIndex(gfx::Size(3, 3),
1172 gfx::Rect(origin
, gfx::Size(3, 3)),
1176 YIndex(gfx::Size(3, 3),
1177 gfx::Rect(origin
, gfx::Size(3, 3)),
1182 YIndex(gfx::Size(3, 3),
1183 gfx::Rect(origin
, gfx::Size(3, 4)),
1187 YIndex(gfx::Size(3, 3),
1188 gfx::Rect(origin
, gfx::Size(3, 4)),
1192 YIndex(gfx::Size(3, 3),
1193 gfx::Rect(origin
, gfx::Size(3, 4)),
1197 YIndex(gfx::Size(3, 3),
1198 gfx::Rect(origin
, gfx::Size(3, 4)),
1203 YIndex(gfx::Size(1, 1),
1204 gfx::Rect(origin
, gfx::Size(1, 1)),
1208 YIndex(gfx::Size(2, 2),
1209 gfx::Rect(origin
, gfx::Size(2, 2)),
1213 YIndex(gfx::Size(2, 2),
1214 gfx::Rect(origin
, gfx::Size(2, 2)),
1218 YIndex(gfx::Size(3, 3),
1219 gfx::Rect(origin
, gfx::Size(3, 3)),
1223 YIndex(gfx::Size(3, 3),
1224 gfx::Rect(origin
, gfx::Size(3, 3)),
1228 YIndex(gfx::Size(3, 3),
1229 gfx::Rect(origin
, gfx::Size(3, 3)),
1234 YIndex(gfx::Size(3, 3),
1235 gfx::Rect(origin
, gfx::Size(3, 4)),
1239 YIndex(gfx::Size(3, 3),
1240 gfx::Rect(origin
, gfx::Size(3, 4)),
1244 YIndex(gfx::Size(3, 3),
1245 gfx::Rect(origin
, gfx::Size(3, 4)),
1249 YIndex(gfx::Size(3, 3),
1250 gfx::Rect(origin
, gfx::Size(3, 4)),
1255 TEST_P(TilingDataTest
, FirstBorderTileYIndexFromSrcCoord
) {
1256 gfx::Point origin
= GetParam();
1259 MinBorderYIndex(gfx::Size(3, 3),
1260 gfx::Rect(origin
, gfx::Size(10, 10)),
1264 MinBorderYIndex(gfx::Size(3, 3),
1265 gfx::Rect(origin
, gfx::Size(10, 10)),
1269 MinBorderYIndex(gfx::Size(3, 3),
1270 gfx::Rect(origin
, gfx::Size(10, 10)),
1274 MinBorderYIndex(gfx::Size(3, 3),
1275 gfx::Rect(origin
, gfx::Size(10, 10)),
1279 MinBorderYIndex(gfx::Size(3, 3),
1280 gfx::Rect(origin
, gfx::Size(10, 10)),
1284 MinBorderYIndex(gfx::Size(3, 3),
1285 gfx::Rect(origin
, gfx::Size(10, 10)),
1289 MinBorderYIndex(gfx::Size(3, 3),
1290 gfx::Rect(origin
, gfx::Size(10, 10)),
1294 MinBorderYIndex(gfx::Size(3, 3),
1295 gfx::Rect(origin
, gfx::Size(10, 10)),
1299 MinBorderYIndex(gfx::Size(3, 3),
1300 gfx::Rect(origin
, gfx::Size(10, 10)),
1304 MinBorderYIndex(gfx::Size(3, 3),
1305 gfx::Rect(origin
, gfx::Size(10, 10)),
1309 MinBorderYIndex(gfx::Size(3, 3),
1310 gfx::Rect(origin
, gfx::Size(10, 10)),
1314 MinBorderYIndex(gfx::Size(3, 3),
1315 gfx::Rect(origin
, gfx::Size(10, 10)),
1320 MinBorderYIndex(gfx::Size(3, 3),
1321 gfx::Rect(origin
, gfx::Size(10, 10)),
1325 MinBorderYIndex(gfx::Size(3, 3),
1326 gfx::Rect(origin
, gfx::Size(10, 10)),
1330 MinBorderYIndex(gfx::Size(3, 3),
1331 gfx::Rect(origin
, gfx::Size(10, 10)),
1335 MinBorderYIndex(gfx::Size(3, 3),
1336 gfx::Rect(origin
, gfx::Size(10, 10)),
1340 MinBorderYIndex(gfx::Size(3, 3),
1341 gfx::Rect(origin
, gfx::Size(10, 10)),
1345 MinBorderYIndex(gfx::Size(3, 3),
1346 gfx::Rect(origin
, gfx::Size(10, 10)),
1350 MinBorderYIndex(gfx::Size(3, 3),
1351 gfx::Rect(origin
, gfx::Size(10, 10)),
1355 MinBorderYIndex(gfx::Size(3, 3),
1356 gfx::Rect(origin
, gfx::Size(10, 10)),
1360 MinBorderYIndex(gfx::Size(3, 3),
1361 gfx::Rect(origin
, gfx::Size(10, 10)),
1365 MinBorderYIndex(gfx::Size(3, 3),
1366 gfx::Rect(origin
, gfx::Size(10, 10)),
1370 MinBorderYIndex(gfx::Size(3, 3),
1371 gfx::Rect(origin
, gfx::Size(10, 10)),
1375 MinBorderYIndex(gfx::Size(3, 3),
1376 gfx::Rect(origin
, gfx::Size(10, 10)),
1381 MinBorderYIndex(gfx::Size(1, 1),
1382 gfx::Rect(origin
, gfx::Size(1, 1)),
1386 MinBorderYIndex(gfx::Size(2, 2),
1387 gfx::Rect(origin
, gfx::Size(2, 2)),
1391 MinBorderYIndex(gfx::Size(2, 2),
1392 gfx::Rect(origin
, gfx::Size(2, 2)),
1396 MinBorderYIndex(gfx::Size(3, 3),
1397 gfx::Rect(origin
, gfx::Size(3, 3)),
1401 MinBorderYIndex(gfx::Size(3, 3),
1402 gfx::Rect(origin
, gfx::Size(3, 3)),
1406 MinBorderYIndex(gfx::Size(3, 3),
1407 gfx::Rect(origin
, gfx::Size(3, 3)),
1412 MinBorderYIndex(gfx::Size(3, 3),
1413 gfx::Rect(origin
, gfx::Size(3, 4)),
1417 MinBorderYIndex(gfx::Size(3, 3),
1418 gfx::Rect(origin
, gfx::Size(3, 4)),
1422 MinBorderYIndex(gfx::Size(3, 3),
1423 gfx::Rect(origin
, gfx::Size(3, 4)),
1427 MinBorderYIndex(gfx::Size(3, 3),
1428 gfx::Rect(origin
, gfx::Size(3, 4)),
1433 MinBorderYIndex(gfx::Size(1, 1),
1434 gfx::Rect(origin
, gfx::Size(1, 1)),
1438 MinBorderYIndex(gfx::Size(2, 2),
1439 gfx::Rect(origin
, gfx::Size(2, 2)),
1443 MinBorderYIndex(gfx::Size(2, 2),
1444 gfx::Rect(origin
, gfx::Size(2, 2)),
1448 MinBorderYIndex(gfx::Size(3, 3),
1449 gfx::Rect(origin
, gfx::Size(3, 3)),
1453 MinBorderYIndex(gfx::Size(3, 3),
1454 gfx::Rect(origin
, gfx::Size(3, 3)),
1458 MinBorderYIndex(gfx::Size(3, 3),
1459 gfx::Rect(origin
, gfx::Size(3, 3)),
1464 MinBorderYIndex(gfx::Size(3, 3),
1465 gfx::Rect(origin
, gfx::Size(3, 4)),
1469 MinBorderYIndex(gfx::Size(3, 3),
1470 gfx::Rect(origin
, gfx::Size(3, 4)),
1474 MinBorderYIndex(gfx::Size(3, 3),
1475 gfx::Rect(origin
, gfx::Size(3, 4)),
1479 MinBorderYIndex(gfx::Size(3, 3),
1480 gfx::Rect(origin
, gfx::Size(3, 4)),
1485 TEST_P(TilingDataTest
, LastBorderTileYIndexFromSrcCoord
) {
1486 gfx::Point origin
= GetParam();
1489 MaxBorderYIndex(gfx::Size(3, 3),
1490 gfx::Rect(origin
, gfx::Size(10, 10)),
1494 MaxBorderYIndex(gfx::Size(3, 3),
1495 gfx::Rect(origin
, gfx::Size(10, 10)),
1499 MaxBorderYIndex(gfx::Size(3, 3),
1500 gfx::Rect(origin
, gfx::Size(10, 10)),
1504 MaxBorderYIndex(gfx::Size(3, 3),
1505 gfx::Rect(origin
, gfx::Size(10, 10)),
1509 MaxBorderYIndex(gfx::Size(3, 3),
1510 gfx::Rect(origin
, gfx::Size(10, 10)),
1514 MaxBorderYIndex(gfx::Size(3, 3),
1515 gfx::Rect(origin
, gfx::Size(10, 10)),
1519 MaxBorderYIndex(gfx::Size(3, 3),
1520 gfx::Rect(origin
, gfx::Size(10, 10)),
1524 MaxBorderYIndex(gfx::Size(3, 3),
1525 gfx::Rect(origin
, gfx::Size(10, 10)),
1529 MaxBorderYIndex(gfx::Size(3, 3),
1530 gfx::Rect(origin
, gfx::Size(10, 10)),
1534 MaxBorderYIndex(gfx::Size(3, 3),
1535 gfx::Rect(origin
, gfx::Size(10, 10)),
1539 MaxBorderYIndex(gfx::Size(3, 3),
1540 gfx::Rect(origin
, gfx::Size(10, 10)),
1544 MaxBorderYIndex(gfx::Size(3, 3),
1545 gfx::Rect(origin
, gfx::Size(10, 10)),
1550 MaxBorderYIndex(gfx::Size(3, 3),
1551 gfx::Rect(origin
, gfx::Size(10, 10)),
1555 MaxBorderYIndex(gfx::Size(3, 3),
1556 gfx::Rect(origin
, gfx::Size(10, 10)),
1560 MaxBorderYIndex(gfx::Size(3, 3),
1561 gfx::Rect(origin
, gfx::Size(10, 10)),
1565 MaxBorderYIndex(gfx::Size(3, 3),
1566 gfx::Rect(origin
, gfx::Size(10, 10)),
1570 MaxBorderYIndex(gfx::Size(3, 3),
1571 gfx::Rect(origin
, gfx::Size(10, 10)),
1575 MaxBorderYIndex(gfx::Size(3, 3),
1576 gfx::Rect(origin
, gfx::Size(10, 10)),
1580 MaxBorderYIndex(gfx::Size(3, 3),
1581 gfx::Rect(origin
, gfx::Size(10, 10)),
1585 MaxBorderYIndex(gfx::Size(3, 3),
1586 gfx::Rect(origin
, gfx::Size(10, 10)),
1590 MaxBorderYIndex(gfx::Size(3, 3),
1591 gfx::Rect(origin
, gfx::Size(10, 10)),
1595 MaxBorderYIndex(gfx::Size(3, 3),
1596 gfx::Rect(origin
, gfx::Size(10, 10)),
1600 MaxBorderYIndex(gfx::Size(3, 3),
1601 gfx::Rect(origin
, gfx::Size(10, 10)),
1605 MaxBorderYIndex(gfx::Size(3, 3),
1606 gfx::Rect(origin
, gfx::Size(10, 10)),
1611 MaxBorderYIndex(gfx::Size(1, 1),
1612 gfx::Rect(origin
, gfx::Size(1, 1)),
1616 MaxBorderYIndex(gfx::Size(2, 2),
1617 gfx::Rect(origin
, gfx::Size(2, 2)),
1621 MaxBorderYIndex(gfx::Size(2, 2),
1622 gfx::Rect(origin
, gfx::Size(2, 2)),
1626 MaxBorderYIndex(gfx::Size(3, 3),
1627 gfx::Rect(origin
, gfx::Size(3, 3)),
1631 MaxBorderYIndex(gfx::Size(3, 3),
1632 gfx::Rect(origin
, gfx::Size(3, 3)),
1636 MaxBorderYIndex(gfx::Size(3, 3),
1637 gfx::Rect(origin
, gfx::Size(3, 3)),
1642 MaxBorderYIndex(gfx::Size(3, 3),
1643 gfx::Rect(origin
, gfx::Size(3, 4)),
1647 MaxBorderYIndex(gfx::Size(3, 3),
1648 gfx::Rect(origin
, gfx::Size(3, 4)),
1652 MaxBorderYIndex(gfx::Size(3, 3),
1653 gfx::Rect(origin
, gfx::Size(3, 4)),
1657 MaxBorderYIndex(gfx::Size(3, 3),
1658 gfx::Rect(origin
, gfx::Size(3, 4)),
1663 MaxBorderYIndex(gfx::Size(1, 1),
1664 gfx::Rect(origin
, gfx::Size(1, 1)),
1668 MaxBorderYIndex(gfx::Size(2, 2),
1669 gfx::Rect(origin
, gfx::Size(2, 2)),
1673 MaxBorderYIndex(gfx::Size(2, 2),
1674 gfx::Rect(origin
, gfx::Size(2, 2)),
1678 MaxBorderYIndex(gfx::Size(3, 3),
1679 gfx::Rect(origin
, gfx::Size(3, 3)),
1683 MaxBorderYIndex(gfx::Size(3, 3),
1684 gfx::Rect(origin
, gfx::Size(3, 3)),
1688 MaxBorderYIndex(gfx::Size(3, 3),
1689 gfx::Rect(origin
, gfx::Size(3, 3)),
1694 MaxBorderYIndex(gfx::Size(3, 3),
1695 gfx::Rect(origin
, gfx::Size(3, 4)),
1699 MaxBorderYIndex(gfx::Size(3, 3),
1700 gfx::Rect(origin
, gfx::Size(3, 4)),
1704 MaxBorderYIndex(gfx::Size(3, 3),
1705 gfx::Rect(origin
, gfx::Size(3, 4)),
1709 MaxBorderYIndex(gfx::Size(3, 3),
1710 gfx::Rect(origin
, gfx::Size(3, 4)),
1715 TEST_P(TilingDataTest
, TileSizeX
) {
1716 gfx::Point origin
= GetParam();
1719 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), false, 0));
1721 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), true, 0));
1724 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), false, 0));
1726 1, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), false, 1));
1728 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), true, 0));
1730 2, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), true, 1));
1733 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), false, 0));
1735 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), false, 1));
1737 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), true, 0));
1739 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), true, 1));
1743 SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), false, 0));
1746 SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), false, 1));
1748 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), true, 0));
1750 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), true, 1));
1752 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), true, 2));
1755 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(11, 11)), true, 2));
1757 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(12, 12)), true, 2));
1760 3, SizeX(gfx::Size(5, 9), gfx::Rect(origin
, gfx::Size(12, 17)), true, 2));
1763 TEST_P(TilingDataTest
, TileSizeY
) {
1764 gfx::Point origin
= GetParam();
1767 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), false, 0));
1769 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), true, 0));
1772 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), false, 0));
1774 1, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), false, 1));
1776 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), true, 0));
1778 2, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(6, 6)), true, 1));
1781 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), false, 0));
1783 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), false, 1));
1785 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), true, 0));
1787 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(8, 8)), true, 1));
1791 SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), false, 0));
1794 SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), false, 1));
1796 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), true, 0));
1798 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), true, 1));
1800 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(10, 10)), true, 2));
1803 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(11, 11)), true, 2));
1805 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(12, 12)), true, 2));
1808 3, SizeY(gfx::Size(9, 5), gfx::Rect(origin
, gfx::Size(17, 12)), true, 2));
1811 TEST_P(TilingDataTest
, TileSizeX_and_TilePositionX
) {
1812 gfx::Point origin
= GetParam();
1814 // Single tile cases:
1816 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), false, 0));
1819 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), false, 0));
1822 SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 100)), false, 0));
1825 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 100)), false, 0));
1827 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 1)), false, 0));
1830 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 1)), false, 0));
1833 SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 100)), false, 0));
1836 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 100)), false, 0));
1838 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), true, 0));
1839 EXPECT_EQ(origin
.x(),
1840 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), true, 0));
1842 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 100)), true, 0));
1845 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 100)), true, 0));
1847 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 1)), true, 0));
1848 EXPECT_EQ(origin
.x(),
1849 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 1)), true, 0));
1851 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 100)), true, 0));
1854 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(3, 100)), true, 0));
1860 2, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), false));
1862 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), false, 0));
1864 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), false, 1));
1867 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), false, 0));
1870 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), false, 1));
1873 SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 100)), false, 0));
1876 SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 100)), false, 1));
1879 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 100)), false, 0));
1882 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 100)), false, 1));
1886 // positions 0, 2, 3, 4
1888 4, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true));
1890 2, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 0));
1892 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 1));
1894 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 2));
1896 2, SizeX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 3));
1897 EXPECT_EQ(origin
.x() + 0,
1898 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 0));
1899 EXPECT_EQ(origin
.x() + 2,
1900 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 1));
1901 EXPECT_EQ(origin
.x() + 3,
1902 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 2));
1903 EXPECT_EQ(origin
.x() + 4,
1904 PosX(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(6, 1)), true, 3));
1906 2, SizeX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 0));
1908 1, SizeX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 1));
1910 1, SizeX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 2));
1912 2, SizeX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 3));
1915 PosX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 0));
1918 PosX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 1));
1921 PosX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 2));
1924 PosX(gfx::Size(3, 7), gfx::Rect(origin
, gfx::Size(6, 100)), true, 3));
1927 TEST_P(TilingDataTest
, TileSizeY_and_TilePositionY
) {
1928 gfx::Point origin
= GetParam();
1930 // Single tile cases:
1932 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), false, 0));
1935 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), false, 0));
1938 SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 1)), false, 0));
1941 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 1)), false, 0));
1943 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 3)), false, 0));
1946 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 3)), false, 0));
1949 SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 3)), false, 0));
1952 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 3)), false, 0));
1954 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), true, 0));
1955 EXPECT_EQ(origin
.y(),
1956 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 1)), true, 0));
1958 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 1)), true, 0));
1961 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 1)), true, 0));
1963 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 3)), true, 0));
1964 EXPECT_EQ(origin
.y(),
1965 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 3)), true, 0));
1967 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 3)), true, 0));
1970 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 3)), true, 0));
1976 2, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), false));
1978 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), false, 0));
1980 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), false, 1));
1983 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), false, 0));
1986 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), false, 1));
1989 SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 6)), false, 0));
1992 SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 6)), false, 1));
1995 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 6)), false, 0));
1998 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(100, 6)), false, 1));
2002 // positions 0, 2, 3, 4
2004 4, NumTiles(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true));
2006 2, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 0));
2008 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 1));
2010 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 2));
2012 2, SizeY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 3));
2013 EXPECT_EQ(origin
.y() + 0,
2014 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 0));
2015 EXPECT_EQ(origin
.y() + 2,
2016 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 1));
2017 EXPECT_EQ(origin
.y() + 3,
2018 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 2));
2019 EXPECT_EQ(origin
.y() + 4,
2020 PosY(gfx::Size(3, 3), gfx::Rect(origin
, gfx::Size(1, 6)), true, 3));
2022 2, SizeY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 0));
2024 1, SizeY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 1));
2026 1, SizeY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 2));
2028 2, SizeY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 3));
2031 PosY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 0));
2034 PosY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 1));
2037 PosY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 2));
2040 PosY(gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(100, 6)), true, 3));
2043 TEST_P(TilingDataTest
, SetTotalSize
) {
2044 gfx::Point origin
= GetParam();
2046 TilingData
data(gfx::Size(5, 5), gfx::Rect(origin
, gfx::Size(5, 5)), false);
2047 EXPECT_EQ(origin
.x(), data
.tiling_rect().x());
2048 EXPECT_EQ(origin
.y(), data
.tiling_rect().y());
2049 EXPECT_EQ(5, data
.tiling_rect().width());
2050 EXPECT_EQ(5, data
.tiling_rect().height());
2051 EXPECT_EQ(1, data
.num_tiles_x());
2052 EXPECT_EQ(5, data
.TileSizeX(0));
2053 EXPECT_EQ(1, data
.num_tiles_y());
2054 EXPECT_EQ(5, data
.TileSizeY(0));
2056 data
.SetTilingRect(gfx::Rect(36, 82, 6, 5));
2057 EXPECT_EQ(36, data
.tiling_rect().x());
2058 EXPECT_EQ(82, data
.tiling_rect().y());
2059 EXPECT_EQ(6, data
.tiling_rect().width());
2060 EXPECT_EQ(5, data
.tiling_rect().height());
2061 EXPECT_EQ(2, data
.num_tiles_x());
2062 EXPECT_EQ(5, data
.TileSizeX(0));
2063 EXPECT_EQ(1, data
.TileSizeX(1));
2064 EXPECT_EQ(1, data
.num_tiles_y());
2065 EXPECT_EQ(5, data
.TileSizeY(0));
2067 data
.SetTilingRect(gfx::Rect(4, 22, 5, 12));
2068 EXPECT_EQ(4, data
.tiling_rect().x());
2069 EXPECT_EQ(22, data
.tiling_rect().y());
2070 EXPECT_EQ(5, data
.tiling_rect().width());
2071 EXPECT_EQ(12, data
.tiling_rect().height());
2072 EXPECT_EQ(1, data
.num_tiles_x());
2073 EXPECT_EQ(5, data
.TileSizeX(0));
2074 EXPECT_EQ(3, data
.num_tiles_y());
2075 EXPECT_EQ(5, data
.TileSizeY(0));
2076 EXPECT_EQ(5, data
.TileSizeY(1));
2077 EXPECT_EQ(2, data
.TileSizeY(2));
2080 TEST_P(TilingDataTest
, SetMaxTextureSizeNoBorders
) {
2081 gfx::Point origin
= GetParam();
2083 TilingData
data(gfx::Size(8, 8), gfx::Rect(origin
, gfx::Size(16, 32)), false);
2084 EXPECT_EQ(2, data
.num_tiles_x());
2085 EXPECT_EQ(4, data
.num_tiles_y());
2087 data
.SetMaxTextureSize(gfx::Size(32, 32));
2088 EXPECT_EQ(gfx::Size(32, 32), data
.max_texture_size());
2089 EXPECT_EQ(1, data
.num_tiles_x());
2090 EXPECT_EQ(1, data
.num_tiles_y());
2092 data
.SetMaxTextureSize(gfx::Size(2, 2));
2093 EXPECT_EQ(gfx::Size(2, 2), data
.max_texture_size());
2094 EXPECT_EQ(8, data
.num_tiles_x());
2095 EXPECT_EQ(16, data
.num_tiles_y());
2097 data
.SetMaxTextureSize(gfx::Size(5, 5));
2098 EXPECT_EQ(gfx::Size(5, 5), data
.max_texture_size());
2099 EXPECT_EQ(4, data
.num_tiles_x());
2100 EXPECT_EQ(7, data
.num_tiles_y());
2102 data
.SetMaxTextureSize(gfx::Size(8, 5));
2103 EXPECT_EQ(gfx::Size(8, 5), data
.max_texture_size());
2104 EXPECT_EQ(2, data
.num_tiles_x());
2105 EXPECT_EQ(7, data
.num_tiles_y());
2108 TEST_P(TilingDataTest
, SetMaxTextureSizeBorders
) {
2109 gfx::Point origin
= GetParam();
2111 TilingData
data(gfx::Size(8, 8), gfx::Rect(origin
, gfx::Size(16, 32)), true);
2112 EXPECT_EQ(3, data
.num_tiles_x());
2113 EXPECT_EQ(5, data
.num_tiles_y());
2115 data
.SetMaxTextureSize(gfx::Size(32, 32));
2116 EXPECT_EQ(gfx::Size(32, 32), data
.max_texture_size());
2117 EXPECT_EQ(1, data
.num_tiles_x());
2118 EXPECT_EQ(1, data
.num_tiles_y());
2120 data
.SetMaxTextureSize(gfx::Size(2, 2));
2121 EXPECT_EQ(gfx::Size(2, 2), data
.max_texture_size());
2122 EXPECT_EQ(0, data
.num_tiles_x());
2123 EXPECT_EQ(0, data
.num_tiles_y());
2125 data
.SetMaxTextureSize(gfx::Size(5, 5));
2126 EXPECT_EQ(gfx::Size(5, 5), data
.max_texture_size());
2127 EXPECT_EQ(5, data
.num_tiles_x());
2128 EXPECT_EQ(10, data
.num_tiles_y());
2130 data
.SetMaxTextureSize(gfx::Size(8, 5));
2131 EXPECT_EQ(gfx::Size(8, 5), data
.max_texture_size());
2132 EXPECT_EQ(3, data
.num_tiles_x());
2133 EXPECT_EQ(10, data
.num_tiles_y());
2136 TEST_P(TilingDataTest
, Assignment
) {
2137 gfx::Point origin
= GetParam();
2141 gfx::Size(8, 8), gfx::Rect(origin
, gfx::Size(16, 32)), true);
2142 TilingData dest
= source
;
2143 EXPECT_EQ(source
.border_texels(), dest
.border_texels());
2144 EXPECT_EQ(source
.max_texture_size(), dest
.max_texture_size());
2145 EXPECT_EQ(source
.num_tiles_x(), dest
.num_tiles_x());
2146 EXPECT_EQ(source
.num_tiles_y(), dest
.num_tiles_y());
2147 EXPECT_EQ(source
.tiling_rect().x(), dest
.tiling_rect().x());
2148 EXPECT_EQ(source
.tiling_rect().y(), dest
.tiling_rect().y());
2149 EXPECT_EQ(source
.tiling_rect().width(), dest
.tiling_rect().width());
2150 EXPECT_EQ(source
.tiling_rect().height(), dest
.tiling_rect().height());
2154 gfx::Size(7, 3), gfx::Rect(origin
, gfx::Size(6, 100)), false);
2155 TilingData
dest(source
);
2156 EXPECT_EQ(source
.border_texels(), dest
.border_texels());
2157 EXPECT_EQ(source
.max_texture_size(), dest
.max_texture_size());
2158 EXPECT_EQ(source
.num_tiles_x(), dest
.num_tiles_x());
2159 EXPECT_EQ(source
.num_tiles_y(), dest
.num_tiles_y());
2160 EXPECT_EQ(source
.tiling_rect().x(), dest
.tiling_rect().x());
2161 EXPECT_EQ(source
.tiling_rect().y(), dest
.tiling_rect().y());
2162 EXPECT_EQ(source
.tiling_rect().width(), dest
.tiling_rect().width());
2163 EXPECT_EQ(source
.tiling_rect().height(), dest
.tiling_rect().height());
2167 TEST_P(TilingDataTest
, SetBorderTexels
) {
2168 gfx::Point origin
= GetParam();
2170 TilingData
data(gfx::Size(8, 8), gfx::Rect(origin
, gfx::Size(16, 32)), false);
2171 EXPECT_EQ(2, data
.num_tiles_x());
2172 EXPECT_EQ(4, data
.num_tiles_y());
2174 data
.SetHasBorderTexels(true);
2175 EXPECT_EQ(3, data
.num_tiles_x());
2176 EXPECT_EQ(5, data
.num_tiles_y());
2178 data
.SetHasBorderTexels(false);
2179 EXPECT_EQ(2, data
.num_tiles_x());
2180 EXPECT_EQ(4, data
.num_tiles_y());
2183 TEST_P(TilingDataTest
, LargeBorders
) {
2184 gfx::Point origin
= GetParam();
2187 gfx::Size(100, 80), gfx::Rect(origin
, gfx::Size(200, 145)), 30);
2188 EXPECT_EQ(30, data
.border_texels());
2190 EXPECT_EQ(70, data
.TileSizeX(0));
2191 EXPECT_EQ(40, data
.TileSizeX(1));
2192 EXPECT_EQ(40, data
.TileSizeX(2));
2193 EXPECT_EQ(50, data
.TileSizeX(3));
2194 EXPECT_EQ(4, data
.num_tiles_x());
2196 EXPECT_EQ(50, data
.TileSizeY(0));
2197 EXPECT_EQ(20, data
.TileSizeY(1));
2198 EXPECT_EQ(20, data
.TileSizeY(2));
2199 EXPECT_EQ(20, data
.TileSizeY(3));
2200 EXPECT_EQ(35, data
.TileSizeY(4));
2201 EXPECT_EQ(5, data
.num_tiles_y());
2203 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 0, origin
.y() + 0, 70, 50),
2204 data
.TileBounds(0, 0));
2205 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 70, origin
.y() + 50, 40, 20),
2206 data
.TileBounds(1, 1));
2207 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 110, origin
.y() + 110, 40, 35),
2208 data
.TileBounds(2, 4));
2209 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 150, origin
.y() + 70, 50, 20),
2210 data
.TileBounds(3, 2));
2211 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 150, origin
.y() + 110, 50, 35),
2212 data
.TileBounds(3, 4));
2214 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 0, origin
.y() + 0, 100, 80),
2215 data
.TileBoundsWithBorder(0, 0));
2216 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 40, origin
.y() + 20, 100, 80),
2217 data
.TileBoundsWithBorder(1, 1));
2218 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 80, origin
.y() + 80, 100, 65),
2219 data
.TileBoundsWithBorder(2, 4));
2220 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 120, origin
.y() + 40, 80, 80),
2221 data
.TileBoundsWithBorder(3, 2));
2222 EXPECT_RECT_EQ(gfx::Rect(origin
.x() + 120, origin
.y() + 80, 80, 65),
2223 data
.TileBoundsWithBorder(3, 4));
2225 EXPECT_EQ(0, data
.TileXIndexFromSrcCoord(origin
.x() + 0));
2226 EXPECT_EQ(0, data
.TileXIndexFromSrcCoord(origin
.x() + 69));
2227 EXPECT_EQ(1, data
.TileXIndexFromSrcCoord(origin
.x() + 70));
2228 EXPECT_EQ(1, data
.TileXIndexFromSrcCoord(origin
.x() + 109));
2229 EXPECT_EQ(2, data
.TileXIndexFromSrcCoord(origin
.x() + 110));
2230 EXPECT_EQ(2, data
.TileXIndexFromSrcCoord(origin
.x() + 149));
2231 EXPECT_EQ(3, data
.TileXIndexFromSrcCoord(origin
.x() + 150));
2232 EXPECT_EQ(3, data
.TileXIndexFromSrcCoord(origin
.x() + 199));
2234 EXPECT_EQ(0, data
.TileYIndexFromSrcCoord(origin
.y() + 0));
2235 EXPECT_EQ(0, data
.TileYIndexFromSrcCoord(origin
.y() + 49));
2236 EXPECT_EQ(1, data
.TileYIndexFromSrcCoord(origin
.y() + 50));
2237 EXPECT_EQ(1, data
.TileYIndexFromSrcCoord(origin
.y() + 69));
2238 EXPECT_EQ(2, data
.TileYIndexFromSrcCoord(origin
.y() + 70));
2239 EXPECT_EQ(2, data
.TileYIndexFromSrcCoord(origin
.y() + 89));
2240 EXPECT_EQ(3, data
.TileYIndexFromSrcCoord(origin
.y() + 90));
2241 EXPECT_EQ(3, data
.TileYIndexFromSrcCoord(origin
.y() + 109));
2242 EXPECT_EQ(4, data
.TileYIndexFromSrcCoord(origin
.y() + 110));
2243 EXPECT_EQ(4, data
.TileYIndexFromSrcCoord(origin
.y() + 144));
2245 EXPECT_EQ(0, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 0));
2246 EXPECT_EQ(0, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 99));
2247 EXPECT_EQ(1, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 100));
2248 EXPECT_EQ(1, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 139));
2249 EXPECT_EQ(2, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 140));
2250 EXPECT_EQ(2, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 179));
2251 EXPECT_EQ(3, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 180));
2252 EXPECT_EQ(3, data
.FirstBorderTileXIndexFromSrcCoord(origin
.x() + 199));
2254 EXPECT_EQ(0, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 0));
2255 EXPECT_EQ(0, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 79));
2256 EXPECT_EQ(1, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 80));
2257 EXPECT_EQ(1, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 99));
2258 EXPECT_EQ(2, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 100));
2259 EXPECT_EQ(2, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 119));
2260 EXPECT_EQ(3, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 120));
2261 EXPECT_EQ(3, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 139));
2262 EXPECT_EQ(4, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 140));
2263 EXPECT_EQ(4, data
.FirstBorderTileYIndexFromSrcCoord(origin
.y() + 144));
2265 EXPECT_EQ(0, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 0));
2266 EXPECT_EQ(0, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 39));
2267 EXPECT_EQ(1, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 40));
2268 EXPECT_EQ(1, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 79));
2269 EXPECT_EQ(2, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 80));
2270 EXPECT_EQ(2, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 119));
2271 EXPECT_EQ(3, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 120));
2272 EXPECT_EQ(3, data
.LastBorderTileXIndexFromSrcCoord(origin
.x() + 199));
2274 EXPECT_EQ(0, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 0));
2275 EXPECT_EQ(0, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 19));
2276 EXPECT_EQ(1, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 20));
2277 EXPECT_EQ(1, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 39));
2278 EXPECT_EQ(2, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 40));
2279 EXPECT_EQ(2, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 59));
2280 EXPECT_EQ(3, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 60));
2281 EXPECT_EQ(3, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 79));
2282 EXPECT_EQ(4, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 80));
2283 EXPECT_EQ(4, data
.LastBorderTileYIndexFromSrcCoord(origin
.y() + 144));
2286 void TestIterate(const TilingData
& data
,
2292 bool include_borders
) {
2293 EXPECT_GE(expect_left
, 0);
2294 EXPECT_GE(expect_top
, 0);
2295 EXPECT_LT(expect_right
, data
.num_tiles_x());
2296 EXPECT_LT(expect_bottom
, data
.num_tiles_y());
2298 std::vector
<std::pair
<int, int> > original_expected
;
2299 for (int x
= 0; x
< data
.num_tiles_x(); ++x
) {
2300 for (int y
= 0; y
< data
.num_tiles_y(); ++y
) {
2302 if (include_borders
)
2303 bounds
= data
.TileBoundsWithBorder(x
, y
);
2305 bounds
= data
.TileBounds(x
, y
);
2306 if (x
>= expect_left
&& x
<= expect_right
&&
2307 y
>= expect_top
&& y
<= expect_bottom
) {
2308 EXPECT_TRUE(bounds
.Intersects(rect
));
2309 original_expected
.push_back(std::make_pair(x
, y
));
2311 EXPECT_FALSE(bounds
.Intersects(rect
));
2316 // Verify with vanilla iterator.
2318 std::vector
<std::pair
<int, int> > expected
= original_expected
;
2319 for (TilingData::Iterator
iter(&data
, rect
, include_borders
); iter
;
2322 for (size_t i
= 0; i
< expected
.size(); ++i
) {
2323 if (expected
[i
] == iter
.index()) {
2324 expected
[i
] = expected
.back();
2325 expected
.pop_back();
2332 EXPECT_EQ(0u, expected
.size());
2335 // Make sure this also works with a difference iterator and an empty ignore.
2336 // The difference iterator always includes borders, so ignore it otherwise.
2337 if (include_borders
) {
2338 std::vector
<std::pair
<int, int> > expected
= original_expected
;
2339 for (TilingData::DifferenceIterator
iter(&data
, rect
, gfx::Rect());
2342 for (size_t i
= 0; i
< expected
.size(); ++i
) {
2343 if (expected
[i
] == iter
.index()) {
2344 expected
[i
] = expected
.back();
2345 expected
.pop_back();
2352 EXPECT_EQ(0u, expected
.size());
2356 void TestIterateBorders(const TilingData
& data
,
2361 int expect_bottom
) {
2362 bool include_borders
= true;
2372 void TestIterateNoBorders(const TilingData
& data
,
2377 int expect_bottom
) {
2378 bool include_borders
= false;
2388 void TestIterateAll(const TilingData
& data
,
2393 int expect_bottom
) {
2395 data
, rect
, expect_left
, expect_top
, expect_right
, expect_bottom
);
2396 TestIterateNoBorders(
2397 data
, rect
, expect_left
, expect_top
, expect_right
, expect_bottom
);
2400 TEST_P(TilingDataTest
, IteratorNoBorderTexels
) {
2401 gfx::Point origin
= GetParam();
2404 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(40, 25)), false);
2405 // The following Coordinates are relative to the origin.
2406 // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40)
2407 // Y border index by src coord: [0-10), [10-20), [20, 25)
2408 TestIterateAll(data
, gfx::Rect(origin
.x(), origin
.y(), 40, 25), 0, 0, 3, 2);
2410 data
, gfx::Rect(origin
.x() + 15, origin
.y() + 15, 8, 8), 1, 1, 2, 2);
2413 TestIterateAll(data
,
2414 gfx::Rect(origin
.x() - 100, origin
.y() - 100, 1000, 1000),
2420 data
, gfx::Rect(origin
.x() - 100, origin
.y() + 20, 1000, 1), 0, 2, 3, 2);
2422 data
, gfx::Rect(origin
.x() + 29, origin
.y() - 100, 31, 1000), 2, 0, 3, 2);
2424 TestIterateAll(data
,
2425 gfx::Rect(origin
.x() + 60, origin
.y() + 80, 100, 100),
2432 TEST_P(TilingDataTest
, BordersIteratorOneBorderTexel
) {
2433 gfx::Point origin
= GetParam();
2436 gfx::Size(10, 20), gfx::Rect(origin
, gfx::Size(25, 45)), true);
2437 // The following Coordinates are relative to the origin.
2438 // X border index by src coord: [0-10), [8-18), [16-25)
2439 // Y border index by src coord: [0-20), [18-38), [36-45)
2441 data
, gfx::Rect(origin
.x(), origin
.y(), 25, 45), 0, 0, 2, 2);
2443 data
, gfx::Rect(origin
.x() + 18, origin
.y() + 19, 3, 17), 2, 0, 2, 1);
2445 data
, gfx::Rect(origin
.x() + 10, origin
.y() + 20, 6, 16), 1, 1, 1, 1);
2447 data
, gfx::Rect(origin
.x() + 9, origin
.y() + 19, 8, 18), 0, 0, 2, 2);
2449 TestIterateBorders(data
,
2450 gfx::Rect(origin
.x() - 100, origin
.y() - 100, 1000, 1000),
2456 data
, gfx::Rect(origin
.x() - 100, origin
.y() + 20, 1000, 1), 0, 1, 2, 1);
2458 data
, gfx::Rect(origin
.x() + 18, origin
.y() - 100, 6, 1000), 2, 0, 2, 2);
2460 TestIterateBorders(data
,
2461 gfx::Rect(origin
.x() + 60, origin
.y() + 80, 100, 100),
2468 TEST_P(TilingDataTest
, NoBordersIteratorOneBorderTexel
) {
2469 gfx::Point origin
= GetParam();
2472 gfx::Size(10, 20), gfx::Rect(origin
, gfx::Size(25, 45)), true);
2473 // The following Coordinates are relative to the origin.
2474 // X index by src coord: [0-9), [9-17), [17-25)
2475 // Y index by src coord: [0-19), [19-37), [37-45)
2476 TestIterateNoBorders(
2477 data
, gfx::Rect(origin
.x(), origin
.y(), 25, 45), 0, 0, 2, 2);
2478 TestIterateNoBorders(
2479 data
, gfx::Rect(origin
.x() + 17, origin
.y() + 19, 3, 18), 2, 1, 2, 1);
2480 TestIterateNoBorders(
2481 data
, gfx::Rect(origin
.x() + 17, origin
.y() + 19, 3, 19), 2, 1, 2, 2);
2482 TestIterateNoBorders(
2483 data
, gfx::Rect(origin
.x() + 8, origin
.y() + 18, 9, 19), 0, 0, 1, 1);
2484 TestIterateNoBorders(
2485 data
, gfx::Rect(origin
.x() + 9, origin
.y() + 19, 9, 19), 1, 1, 2, 2);
2487 TestIterateNoBorders(
2489 gfx::Rect(origin
.x() - 100, origin
.y() - 100, 1000, 1000),
2494 TestIterateNoBorders(
2495 data
, gfx::Rect(origin
.x() - 100, origin
.y() + 20, 1000, 1), 0, 1, 2, 1);
2496 TestIterateNoBorders(
2497 data
, gfx::Rect(origin
.x() + 18, origin
.y() - 100, 6, 1000), 2, 0, 2, 2);
2499 TestIterateNoBorders(data
,
2500 gfx::Rect(origin
.x() + 60, origin
.y() + 80, 100, 100),
2507 TEST_P(TilingDataTest
, BordersIteratorManyBorderTexels
) {
2508 gfx::Point origin
= GetParam();
2510 TilingData
data(gfx::Size(50, 60), gfx::Rect(origin
, gfx::Size(65, 110)), 20);
2511 // The following Coordinates are relative to the origin.
2512 // X border index by src coord: [0-50), [10-60), [20-65)
2513 // Y border index by src coord: [0-60), [20-80), [40-100), [60-110)
2515 data
, gfx::Rect(origin
.x(), origin
.y(), 65, 110), 0, 0, 2, 3);
2517 data
, gfx::Rect(origin
.x() + 50, origin
.y() + 60, 15, 65), 1, 1, 2, 3);
2519 data
, gfx::Rect(origin
.x() + 60, origin
.y() + 30, 2, 10), 2, 0, 2, 1);
2521 TestIterateBorders(data
,
2522 gfx::Rect(origin
.x() - 100, origin
.y() - 100, 1000, 1000),
2528 data
, gfx::Rect(origin
.x() - 100, origin
.y() + 10, 1000, 10), 0, 0, 2, 0);
2530 data
, gfx::Rect(origin
.x() + 10, origin
.y() - 100, 10, 1000), 0, 0, 1, 3);
2532 TestIterateBorders(data
,
2533 gfx::Rect(origin
.x() + 65, origin
.y() + 110, 100, 100),
2540 TEST_P(TilingDataTest
, NoBordersIteratorManyBorderTexels
) {
2541 gfx::Point origin
= GetParam();
2543 TilingData
data(gfx::Size(50, 60), gfx::Rect(origin
, gfx::Size(65, 110)), 20);
2544 // The following Coordinates are relative to the origin.
2545 // X index by src coord: [0-30), [30-40), [40, 65)
2546 // Y index by src coord: [0-40), [40-60), [60, 80), [80-110)
2547 TestIterateNoBorders(
2548 data
, gfx::Rect(origin
.x(), origin
.y(), 65, 110), 0, 0, 2, 3);
2549 TestIterateNoBorders(
2550 data
, gfx::Rect(origin
.x() + 30, origin
.y() + 40, 15, 65), 1, 1, 2, 3);
2551 TestIterateNoBorders(
2552 data
, gfx::Rect(origin
.x() + 60, origin
.y() + 20, 2, 21), 2, 0, 2, 1);
2554 TestIterateNoBorders(
2556 gfx::Rect(origin
.x() - 100, origin
.y() - 100, 1000, 1000),
2561 TestIterateNoBorders(
2562 data
, gfx::Rect(origin
.x() - 100, origin
.y() + 10, 1000, 10), 0, 0, 2, 0);
2563 TestIterateNoBorders(
2564 data
, gfx::Rect(origin
.x() + 10, origin
.y() - 100, 10, 1000), 0, 0, 0, 3);
2566 TestIterateNoBorders(data
,
2567 gfx::Rect(origin
.x() + 65, origin
.y() + 110, 100, 100),
2574 TEST_P(TilingDataTest
, IteratorOneTile
) {
2575 gfx::Point origin
= GetParam();
2577 TilingData
no_border(
2578 gfx::Size(1000, 1000), gfx::Rect(origin
, gfx::Size(30, 40)), false);
2580 no_border
, gfx::Rect(origin
.x(), origin
.y(), 30, 40), 0, 0, 0, 0);
2581 TestIterateAll(no_border
,
2582 gfx::Rect(origin
.x() + 10, origin
.y() + 10, 20, 20),
2587 TestIterateAll(no_border
,
2588 gfx::Rect(origin
.x() + 30, origin
.y() + 40, 100, 100),
2594 TilingData
one_border(
2595 gfx::Size(1000, 1000), gfx::Rect(origin
, gfx::Size(30, 40)), true);
2597 one_border
, gfx::Rect(origin
.x(), origin
.y(), 30, 40), 0, 0, 0, 0);
2598 TestIterateAll(one_border
,
2599 gfx::Rect(origin
.x() + 10, origin
.y() + 10, 20, 20),
2604 TestIterateAll(one_border
,
2605 gfx::Rect(origin
.x() + 30, origin
.y() + 40, 100, 100),
2611 TilingData
big_border(
2612 gfx::Size(1000, 1000), gfx::Rect(origin
, gfx::Size(30, 40)), 50);
2614 big_border
, gfx::Rect(origin
.x(), origin
.y(), 30, 40), 0, 0, 0, 0);
2615 TestIterateAll(big_border
,
2616 gfx::Rect(origin
.x() + 10, origin
.y() + 10, 20, 20),
2621 TestIterateAll(big_border
,
2622 gfx::Rect(origin
.x() + 30, origin
.y() + 40, 100, 100),
2629 TEST(TilingDataTest
, IteratorNoTiles
) {
2630 TilingData
data(gfx::Size(100, 100), gfx::Rect(), false);
2631 TestIterateAll(data
, gfx::Rect(0, 0, 100, 100), 0, 0, -1, -1);
2635 const TilingData
& data
,
2640 std::vector
<std::pair
<int, int> > expected
;
2641 for (int y
= 0; y
< data
.num_tiles_y(); ++y
) {
2642 for (int x
= 0; x
< data
.num_tiles_x(); ++x
) {
2643 gfx::Rect bounds
= data
.TileBoundsWithBorder(x
, y
);
2644 if (bounds
.Intersects(consider
) && !bounds
.Intersects(ignore
))
2645 expected
.push_back(std::make_pair(x
, y
));
2649 // Sanity check the test.
2650 EXPECT_EQ(num_tiles
, expected
.size());
2652 for (TilingData::DifferenceIterator
iter(&data
, consider
, ignore
);
2655 for (size_t i
= 0; i
< expected
.size(); ++i
) {
2656 if (expected
[i
] == iter
.index()) {
2657 expected
[i
] = expected
.back();
2658 expected
.pop_back();
2665 EXPECT_EQ(0u, expected
.size());
2668 TEST_P(TilingDataTest
, DifferenceIteratorIgnoreGeometry
) {
2669 // This test is checking that the iterator can handle different geometries of
2670 // ignore rects relative to the consider rect. The consider rect indices
2671 // themselves are mostly tested by the non-difference iterator tests, so the
2672 // full rect is mostly used here for simplicity.
2674 gfx::Point origin
= GetParam();
2676 // The following Coordinates are relative to the origin.
2677 // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40)
2678 // Y border index by src coord: [0-10), [10-20), [20, 25)
2680 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(40, 25)), false);
2684 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2685 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2688 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2689 gfx::Rect(origin
.x() - 100, origin
.y() - 100, 200, 200),
2692 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2693 gfx::Rect(origin
.x() + 9, origin
.y() + 9, 30, 15),
2696 gfx::Rect(origin
.x() + 15, origin
.y() + 15, 8, 8),
2697 gfx::Rect(origin
.x() + 15, origin
.y() + 15, 8, 8),
2702 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2703 gfx::Rect(origin
.x() - 30, origin
.y() - 20, 8, 8),
2705 TestDiff(data
, gfx::Rect(origin
.x(), origin
.y(), 40, 25), gfx::Rect(), 12);
2707 // Top left, remove 2x2 tiles
2709 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2710 gfx::Rect(origin
.x(), origin
.y(), 20, 19),
2712 // Bottom right, remove 2x2 tiles
2714 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2715 gfx::Rect(origin
.x() + 20, origin
.y() + 15, 20, 6),
2717 // Bottom left, remove 2x2 tiles
2719 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2720 gfx::Rect(origin
.x(), origin
.y() + 15, 20, 6),
2722 // Top right, remove 2x2 tiles
2724 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2725 gfx::Rect(origin
.x() + 20, origin
.y(), 20, 19),
2727 // Center, remove only one tile
2729 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2730 gfx::Rect(origin
.x() + 10, origin
.y() + 10, 5, 5),
2733 // Left column, flush left, removing two columns
2735 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2736 gfx::Rect(origin
.x(), origin
.y(), 11, 25),
2738 // Middle column, removing two columns
2740 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2741 gfx::Rect(origin
.x() + 11, origin
.y(), 11, 25),
2743 // Right column, flush right, removing one column
2745 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2746 gfx::Rect(origin
.x() + 30, origin
.y(), 2, 25),
2749 // Top row, flush top, removing one row
2751 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2752 gfx::Rect(origin
.x(), origin
.y() + 5, 40, 5),
2754 // Middle row, removing one row
2756 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2757 gfx::Rect(origin
.x(), origin
.y() + 13, 40, 5),
2759 // Bottom row, flush bottom, removing two rows
2761 gfx::Rect(origin
.x(), origin
.y(), 40, 25),
2762 gfx::Rect(origin
.x(), origin
.y() + 13, 40, 12),
2765 // Non-intersecting, but still touching two of the same tiles.
2767 gfx::Rect(origin
.x() + 8, origin
.y(), 32, 25),
2768 gfx::Rect(origin
.x(), origin
.y() + 12, 5, 12),
2771 // Intersecting, but neither contains the other. 2x3 with one overlap.
2773 gfx::Rect(origin
.x() + 5, origin
.y() + 2, 20, 10),
2774 gfx::Rect(origin
.x() + 25, origin
.y() + 15, 5, 10),
2778 TEST_P(TilingDataTest
, DifferenceIteratorManyBorderTexels
) {
2779 gfx::Point origin
= GetParam();
2781 // The following Coordinates are relative to the origin.
2782 // X border index by src coord: [0-50), [10-60), [20-65)
2783 // Y border index by src coord: [0-60), [20-80), [40-100), [60-110)
2784 TilingData
data(gfx::Size(50, 60), gfx::Rect(origin
, gfx::Size(65, 110)), 20);
2786 // Ignore one column, three rows
2788 gfx::Rect(origin
.x(), origin
.y() + 30, 55, 80),
2789 gfx::Rect(origin
.x() + 5, origin
.y() + 30, 5, 15),
2792 // Knock out three columns, leaving only one.
2794 gfx::Rect(origin
.x() + 10, origin
.y() + 30, 55, 80),
2795 gfx::Rect(origin
.x() + 30, origin
.y() + 59, 20, 1),
2798 // Overlap all tiles with ignore rect.
2800 gfx::Rect(origin
.x(), origin
.y(), 65, 110),
2801 gfx::Rect(origin
.x() + 30, origin
.y() + 59, 1, 2),
2805 TEST_P(TilingDataTest
, DifferenceIteratorOneTile
) {
2806 gfx::Point origin
= GetParam();
2808 TilingData
no_border(
2809 gfx::Size(1000, 1000), gfx::Rect(origin
, gfx::Size(30, 40)), false);
2811 no_border
, gfx::Rect(origin
.x(), origin
.y(), 30, 40), gfx::Rect(), 1);
2813 gfx::Rect(origin
.x() + 5, origin
.y() + 5, 100, 100),
2814 gfx::Rect(origin
.x() + 5, origin
.y() + 5, 1, 1),
2817 TilingData
one_border(
2818 gfx::Size(1000, 1000), gfx::Rect(origin
, gfx::Size(30, 40)), true);
2820 one_border
, gfx::Rect(origin
.x(), origin
.y(), 30, 40), gfx::Rect(), 1);
2821 TestDiff(one_border
,
2822 gfx::Rect(origin
.x() + 5, origin
.y() + 5, 100, 100),
2823 gfx::Rect(origin
.x() + 5, origin
.y() + 5, 1, 1),
2826 TilingData
big_border(
2827 gfx::Size(1000, 1000), gfx::Rect(origin
, gfx::Size(30, 40)), 50);
2829 big_border
, gfx::Rect(origin
.x(), origin
.y(), 30, 40), gfx::Rect(), 1);
2830 TestDiff(big_border
,
2831 gfx::Rect(origin
.x() + 5, origin
.y() + 5, 100, 100),
2832 gfx::Rect(origin
.x() + 5, origin
.y() + 5, 1, 1),
2836 TEST(TilingDataTest
, DifferenceIteratorNoTiles
) {
2837 TilingData
data(gfx::Size(100, 100), gfx::Rect(), false);
2838 TestDiff(data
, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 5, 5), 0);
2841 void TestSpiralIterate(int source_line_number
,
2842 const TilingData
& tiling_data
,
2843 const gfx::Rect
& consider
,
2844 const gfx::Rect
& ignore
,
2845 const gfx::Rect
& center
,
2846 const std::vector
<std::pair
<int, int> >& expected
) {
2847 std::vector
<std::pair
<int, int> > actual
;
2848 for (TilingData::SpiralDifferenceIterator
it(
2849 &tiling_data
, consider
, ignore
, center
);
2852 actual
.push_back(it
.index());
2855 EXPECT_EQ(expected
.size(), actual
.size()) << "error from line "
2856 << source_line_number
;
2857 for (size_t i
= 0; i
< std::min(expected
.size(), actual
.size()); ++i
) {
2858 EXPECT_EQ(expected
[i
].first
, actual
[i
].first
)
2859 << "i: " << i
<< " error from line: " << source_line_number
;
2860 EXPECT_EQ(expected
[i
].second
, actual
[i
].second
)
2861 << "i: " << i
<< " error from line: " << source_line_number
;
2865 TEST_P(TilingDataTest
, SpiralDifferenceIteratorNoIgnoreFullConsider
) {
2866 gfx::Point origin
= GetParam();
2867 TilingData
tiling_data(
2868 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(30, 30)), false);
2869 gfx::Rect
consider(origin
.x(), origin
.y(), 30, 30);
2871 std::vector
<std::pair
<int, int> > expected
;
2873 // Center is in the center of the tiling.
2874 gfx::Rect
center(origin
.x() + 15, origin
.y() + 15, 1, 1);
2876 // Layout of the tiling data, and expected return order:
2882 expected
.push_back(std::make_pair(2, 1));
2883 expected
.push_back(std::make_pair(2, 0));
2884 expected
.push_back(std::make_pair(1, 0));
2885 expected
.push_back(std::make_pair(0, 0));
2886 expected
.push_back(std::make_pair(0, 1));
2887 expected
.push_back(std::make_pair(0, 2));
2888 expected
.push_back(std::make_pair(1, 2));
2889 expected
.push_back(std::make_pair(2, 2));
2891 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
2893 // Center is off to the right side of the tiling (and far away).
2894 center
= gfx::Rect(origin
.x() + 100, origin
.y() + 15, 1, 1);
2896 // Layout of the tiling data, and expected return order:
2903 expected
.push_back(std::make_pair(2, 0));
2904 expected
.push_back(std::make_pair(2, 1));
2905 expected
.push_back(std::make_pair(2, 2));
2906 expected
.push_back(std::make_pair(1, 0));
2907 expected
.push_back(std::make_pair(1, 1));
2908 expected
.push_back(std::make_pair(1, 2));
2909 expected
.push_back(std::make_pair(0, 0));
2910 expected
.push_back(std::make_pair(0, 1));
2911 expected
.push_back(std::make_pair(0, 2));
2913 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
2915 // Center is the bottom right corner of the tiling.
2916 center
= gfx::Rect(origin
.x() + 25, origin
.y() + 25, 1, 1);
2918 // Layout of the tiling data, and expected return order:
2925 expected
.push_back(std::make_pair(2, 1));
2926 expected
.push_back(std::make_pair(1, 1));
2927 expected
.push_back(std::make_pair(1, 2));
2928 expected
.push_back(std::make_pair(2, 0));
2929 expected
.push_back(std::make_pair(1, 0));
2930 expected
.push_back(std::make_pair(0, 0));
2931 expected
.push_back(std::make_pair(0, 1));
2932 expected
.push_back(std::make_pair(0, 2));
2934 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
2936 // Center is off the top left side of the tiling.
2937 center
= gfx::Rect(origin
.x() - 60, origin
.y() - 50, 1, 1);
2939 // Layout of the tiling data, and expected return order:
2946 expected
.push_back(std::make_pair(0, 0));
2947 expected
.push_back(std::make_pair(1, 0));
2948 expected
.push_back(std::make_pair(0, 1));
2949 expected
.push_back(std::make_pair(1, 1));
2950 expected
.push_back(std::make_pair(2, 1));
2951 expected
.push_back(std::make_pair(2, 0));
2952 expected
.push_back(std::make_pair(0, 2));
2953 expected
.push_back(std::make_pair(1, 2));
2954 expected
.push_back(std::make_pair(2, 2));
2956 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
2959 center
= gfx::Rect(origin
.x() + 15, origin
.y() + 15, 1, 10);
2961 // Layout of the tiling data, and expected return order:
2968 expected
.push_back(std::make_pair(2, 2));
2969 expected
.push_back(std::make_pair(2, 1));
2970 expected
.push_back(std::make_pair(2, 0));
2971 expected
.push_back(std::make_pair(1, 0));
2972 expected
.push_back(std::make_pair(0, 0));
2973 expected
.push_back(std::make_pair(0, 1));
2974 expected
.push_back(std::make_pair(0, 2));
2976 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
2979 TEST_P(TilingDataTest
, SpiralDifferenceIteratorSmallConsider
) {
2980 gfx::Point origin
= GetParam();
2981 TilingData
tiling_data(
2982 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(50, 50)), false);
2984 std::vector
<std::pair
<int, int> > expected
;
2985 gfx::Rect
center(origin
.x() + 15, origin
.y() + 15, 1, 1);
2987 // Consider is one cell.
2988 gfx::Rect
consider(origin
.x(), origin
.y(), 1, 1);
2990 // Layout of the tiling data, and expected return order:
2998 expected
.push_back(std::make_pair(0, 0));
3000 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3002 // Consider is bottom right corner.
3003 consider
= gfx::Rect(origin
.x() + 25, origin
.y() + 25, 10, 10);
3005 // Layout of the tiling data, and expected return order:
3014 expected
.push_back(std::make_pair(2, 2));
3015 expected
.push_back(std::make_pair(3, 2));
3016 expected
.push_back(std::make_pair(2, 3));
3017 expected
.push_back(std::make_pair(3, 3));
3019 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3021 // Consider is one column.
3022 consider
= gfx::Rect(origin
.x() + 11, origin
.y(), 1, 100);
3024 // Layout of the tiling data, and expected return order:
3033 expected
.push_back(std::make_pair(1, 0));
3034 expected
.push_back(std::make_pair(1, 2));
3035 expected
.push_back(std::make_pair(1, 3));
3036 expected
.push_back(std::make_pair(1, 4));
3038 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3041 TEST_P(TilingDataTest
, SpiralDifferenceIteratorHasIgnore
) {
3042 gfx::Point origin
= GetParam();
3043 TilingData
tiling_data(
3044 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(50, 50)), false);
3045 gfx::Rect
consider(origin
.x(), origin
.y(), 50, 50);
3046 std::vector
<std::pair
<int, int> > expected
;
3047 gfx::Rect
center(origin
.x() + 15, origin
.y() + 15, 1, 1);
3050 gfx::Rect
ignore(origin
.x(), origin
.y(), 50, 50);
3052 // Layout of the tiling data, and expected return order:
3062 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3065 ignore
= gfx::Rect(origin
.x() + 15, origin
.y(), 20, 100);
3067 // Layout of the tiling data, and expected return order:
3077 expected
.push_back(std::make_pair(0, 0));
3078 expected
.push_back(std::make_pair(0, 1));
3079 expected
.push_back(std::make_pair(0, 2));
3080 expected
.push_back(std::make_pair(0, 3));
3081 expected
.push_back(std::make_pair(4, 3));
3082 expected
.push_back(std::make_pair(4, 2));
3083 expected
.push_back(std::make_pair(4, 1));
3084 expected
.push_back(std::make_pair(4, 0));
3085 expected
.push_back(std::make_pair(0, 4));
3086 expected
.push_back(std::make_pair(4, 4));
3088 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3090 // Ignore covers the top half.
3091 ignore
= gfx::Rect(origin
.x(), origin
.y(), 50, 25);
3093 // Layout of the tiling data, and expected return order:
3103 expected
.push_back(std::make_pair(0, 3));
3104 expected
.push_back(std::make_pair(1, 3));
3105 expected
.push_back(std::make_pair(2, 3));
3106 expected
.push_back(std::make_pair(3, 3));
3107 expected
.push_back(std::make_pair(4, 3));
3108 expected
.push_back(std::make_pair(0, 4));
3109 expected
.push_back(std::make_pair(1, 4));
3110 expected
.push_back(std::make_pair(2, 4));
3111 expected
.push_back(std::make_pair(3, 4));
3112 expected
.push_back(std::make_pair(4, 4));
3114 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3117 TEST_P(TilingDataTest
, SpiralDifferenceIteratorRectangleCenter
) {
3118 gfx::Point origin
= GetParam();
3119 TilingData
tiling_data(
3120 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(50, 50)), false);
3121 gfx::Rect
consider(origin
.x(), origin
.y(), 50, 50);
3122 std::vector
<std::pair
<int, int> > expected
;
3126 gfx::Rect
center(origin
.x() + 25, origin
.y() + 25, 1, 10);
3128 // Layout of the tiling data, and expected return order:
3138 expected
.push_back(std::make_pair(3, 3));
3139 expected
.push_back(std::make_pair(3, 2));
3140 expected
.push_back(std::make_pair(3, 1));
3141 expected
.push_back(std::make_pair(2, 1));
3142 expected
.push_back(std::make_pair(1, 1));
3143 expected
.push_back(std::make_pair(1, 2));
3144 expected
.push_back(std::make_pair(1, 3));
3145 expected
.push_back(std::make_pair(1, 4));
3146 expected
.push_back(std::make_pair(2, 4));
3147 expected
.push_back(std::make_pair(3, 4));
3148 expected
.push_back(std::make_pair(4, 4));
3149 expected
.push_back(std::make_pair(4, 3));
3150 expected
.push_back(std::make_pair(4, 2));
3151 expected
.push_back(std::make_pair(4, 1));
3152 expected
.push_back(std::make_pair(4, 0));
3153 expected
.push_back(std::make_pair(3, 0));
3154 expected
.push_back(std::make_pair(2, 0));
3155 expected
.push_back(std::make_pair(1, 0));
3156 expected
.push_back(std::make_pair(0, 0));
3157 expected
.push_back(std::make_pair(0, 1));
3158 expected
.push_back(std::make_pair(0, 2));
3159 expected
.push_back(std::make_pair(0, 3));
3160 expected
.push_back(std::make_pair(0, 4));
3162 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3164 // Three by two center.
3165 center
= gfx::Rect(origin
.x() + 15, origin
.y() + 25, 20, 10);
3167 // Layout of the tiling data, and expected return order:
3177 expected
.push_back(std::make_pair(4, 3));
3178 expected
.push_back(std::make_pair(4, 2));
3179 expected
.push_back(std::make_pair(4, 1));
3180 expected
.push_back(std::make_pair(3, 1));
3181 expected
.push_back(std::make_pair(2, 1));
3182 expected
.push_back(std::make_pair(1, 1));
3183 expected
.push_back(std::make_pair(0, 1));
3184 expected
.push_back(std::make_pair(0, 2));
3185 expected
.push_back(std::make_pair(0, 3));
3186 expected
.push_back(std::make_pair(0, 4));
3187 expected
.push_back(std::make_pair(1, 4));
3188 expected
.push_back(std::make_pair(2, 4));
3189 expected
.push_back(std::make_pair(3, 4));
3190 expected
.push_back(std::make_pair(4, 4));
3191 expected
.push_back(std::make_pair(4, 0));
3192 expected
.push_back(std::make_pair(3, 0));
3193 expected
.push_back(std::make_pair(2, 0));
3194 expected
.push_back(std::make_pair(1, 0));
3195 expected
.push_back(std::make_pair(0, 0));
3197 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3199 // Column center off the left side.
3200 center
= gfx::Rect(origin
.x() - 50, origin
.y(), 30, 50);
3202 // Layout of the tiling data, and expected return order:
3212 expected
.push_back(std::make_pair(0, 4));
3213 expected
.push_back(std::make_pair(0, 3));
3214 expected
.push_back(std::make_pair(0, 2));
3215 expected
.push_back(std::make_pair(0, 1));
3216 expected
.push_back(std::make_pair(0, 0));
3217 expected
.push_back(std::make_pair(1, 4));
3218 expected
.push_back(std::make_pair(1, 3));
3219 expected
.push_back(std::make_pair(1, 2));
3220 expected
.push_back(std::make_pair(1, 1));
3221 expected
.push_back(std::make_pair(1, 0));
3222 expected
.push_back(std::make_pair(2, 4));
3223 expected
.push_back(std::make_pair(2, 3));
3224 expected
.push_back(std::make_pair(2, 2));
3225 expected
.push_back(std::make_pair(2, 1));
3226 expected
.push_back(std::make_pair(2, 0));
3227 expected
.push_back(std::make_pair(3, 4));
3228 expected
.push_back(std::make_pair(3, 3));
3229 expected
.push_back(std::make_pair(3, 2));
3230 expected
.push_back(std::make_pair(3, 1));
3231 expected
.push_back(std::make_pair(3, 0));
3232 expected
.push_back(std::make_pair(4, 4));
3233 expected
.push_back(std::make_pair(4, 3));
3234 expected
.push_back(std::make_pair(4, 2));
3235 expected
.push_back(std::make_pair(4, 1));
3236 expected
.push_back(std::make_pair(4, 0));
3238 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3241 TEST_P(TilingDataTest
, SpiralDifferenceIteratorEdgeCases
) {
3242 gfx::Point origin
= GetParam();
3243 TilingData
tiling_data(
3244 gfx::Size(10, 10), gfx::Rect(origin
, gfx::Size(30, 30)), false);
3245 std::vector
<std::pair
<int, int> > expected
;
3250 // Ignore contains, but is not equal to, consider and center.
3251 ignore
= gfx::Rect(origin
.x() + 15, origin
.y(), 20, 30);
3252 consider
= gfx::Rect(origin
.x() + 20, origin
.y() + 10, 10, 20);
3253 center
= gfx::Rect(origin
.x() + 25, origin
.y(), 5, 5);
3255 // Layout of the tiling data, and expected return order:
3263 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3265 // Center intersects with consider.
3266 ignore
= gfx::Rect();
3267 center
= gfx::Rect(origin
.x(), origin
.y() + 15, 30, 15);
3268 consider
= gfx::Rect(origin
.x(), origin
.y(), 15, 30);
3270 // Layout of the tiling data, and expected return order:
3278 expected
.push_back(std::make_pair(1, 0));
3279 expected
.push_back(std::make_pair(0, 0));
3281 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3283 // Consider and ignore are non-intersecting.
3284 ignore
= gfx::Rect(origin
.x(), origin
.y(), 5, 30);
3285 consider
= gfx::Rect(origin
.x() + 25, origin
.y(), 5, 30);
3286 center
= gfx::Rect(origin
.x() + 15, origin
.y(), 1, 1);
3288 // Layout of the tiling data, and expected return order:
3296 expected
.push_back(std::make_pair(2, 0));
3297 expected
.push_back(std::make_pair(2, 1));
3298 expected
.push_back(std::make_pair(2, 2));
3300 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3302 // Center intersects with ignore.
3303 consider
= gfx::Rect(origin
.x(), origin
.y(), 30, 30);
3304 center
= gfx::Rect(origin
.x() + 15, origin
.y(), 1, 30);
3305 ignore
= gfx::Rect(origin
.x(), origin
.y() + 15, 30, 1);
3307 // Layout of the tiling data, and expected return order:
3315 expected
.push_back(std::make_pair(2, 2));
3316 expected
.push_back(std::make_pair(2, 0));
3317 expected
.push_back(std::make_pair(0, 0));
3318 expected
.push_back(std::make_pair(0, 2));
3320 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3322 // Center and ignore are the same.
3323 consider
= gfx::Rect(origin
.x(), origin
.y(), 30, 30);
3324 center
= gfx::Rect(origin
.x() + 15, origin
.y(), 1, 30);
3327 // Layout of the tiling data, and expected return order:
3335 expected
.push_back(std::make_pair(2, 2));
3336 expected
.push_back(std::make_pair(2, 1));
3337 expected
.push_back(std::make_pair(2, 0));
3338 expected
.push_back(std::make_pair(0, 0));
3339 expected
.push_back(std::make_pair(0, 1));
3340 expected
.push_back(std::make_pair(0, 2));
3342 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3344 // Empty tiling data.
3345 TilingData
empty_data(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 0), false);
3348 TestSpiralIterate(__LINE__
, empty_data
, consider
, ignore
, center
, expected
);
3351 ignore
= gfx::Rect();
3352 center
= gfx::Rect(1, 1, 1, 1);
3353 consider
= gfx::Rect();
3356 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3358 // Empty center. Note: This arbitrarily puts the center to be off the top-left
3360 consider
= gfx::Rect(origin
.x(), origin
.y(), 30, 30);
3361 ignore
= gfx::Rect();
3362 center
= gfx::Rect();
3364 // Layout of the tiling data, and expected return order:
3372 expected
.push_back(std::make_pair(0, 0));
3373 expected
.push_back(std::make_pair(1, 0));
3374 expected
.push_back(std::make_pair(0, 1));
3375 expected
.push_back(std::make_pair(1, 1));
3376 expected
.push_back(std::make_pair(2, 1));
3377 expected
.push_back(std::make_pair(2, 0));
3378 expected
.push_back(std::make_pair(0, 2));
3379 expected
.push_back(std::make_pair(1, 2));
3380 expected
.push_back(std::make_pair(2, 2));
3382 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3384 // Every rect is empty.
3385 ignore
= gfx::Rect();
3386 center
= gfx::Rect();
3387 consider
= gfx::Rect();
3390 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3392 // Center is just to the left of cover, and off of the tiling's left side.
3393 consider
= gfx::Rect(origin
.x(), origin
.y(), 30, 30);
3394 ignore
= gfx::Rect();
3395 center
= gfx::Rect(origin
.x() - 20, origin
.y(), 19, 30);
3397 // Layout of the tiling data, and expected return order:
3405 expected
.push_back(std::make_pair(0, 2));
3406 expected
.push_back(std::make_pair(0, 1));
3407 expected
.push_back(std::make_pair(0, 0));
3408 expected
.push_back(std::make_pair(1, 2));
3409 expected
.push_back(std::make_pair(1, 1));
3410 expected
.push_back(std::make_pair(1, 0));
3411 expected
.push_back(std::make_pair(2, 2));
3412 expected
.push_back(std::make_pair(2, 1));
3413 expected
.push_back(std::make_pair(2, 0));
3415 TestSpiralIterate(__LINE__
, tiling_data
, consider
, ignore
, center
, expected
);
3418 INSTANTIATE_TEST_CASE_P(TilingData
,
3420 ::testing::Values(gfx::Point(42, 17),
3424 gfx::Point(-16, -35),
3425 gfx::Point(-10000, -15000)));