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

Side by Side Diff: cc/base/tiling_data_unittest.cc

Issue 235753002: cc: Give TilingData a Rect instead of a Size (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/base/tiling_data.h" 5 #include "cc/base/tiling_data.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "cc/test/geometry_test_utils.h" 10 #include "cc/test/geometry_test_utils.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace cc { 13 namespace cc {
14 namespace { 14 namespace {
15 15
16 int NumTiles( 16 int NumTiles(
17 const gfx::Size& max_texture_size, 17 const gfx::Size& max_texture_size,
18 const gfx::Size& total_size, 18 const gfx::Rect& tiling_rect,
19 bool has_border_texels) { 19 bool has_border_texels) {
20 TilingData tiling(max_texture_size, total_size, has_border_texels); 20 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
21 int num_tiles = tiling.num_tiles_x() * tiling.num_tiles_y(); 21 int num_tiles = tiling.num_tiles_x() * tiling.num_tiles_y();
22 22
23 // Assert no overflow. 23 // Assert no overflow.
24 EXPECT_GE(num_tiles, 0); 24 EXPECT_GE(num_tiles, 0);
25 if (num_tiles > 0) 25 if (num_tiles > 0)
26 EXPECT_EQ(num_tiles / tiling.num_tiles_x(), tiling.num_tiles_y()); 26 EXPECT_EQ(num_tiles / tiling.num_tiles_x(), tiling.num_tiles_y());
27 27
28 return num_tiles; 28 return num_tiles;
29 } 29 }
30 30
31 int XIndex( 31 int XIndex(
32 const gfx::Size& max_texture_size, 32 const gfx::Size& max_texture_size,
33 const gfx::Size& total_size, 33 const gfx::Rect& tiling_rect,
34 bool has_border_texels, 34 bool has_border_texels,
35 int x_coord) { 35 int x_coord) {
36 TilingData tiling(max_texture_size, total_size, has_border_texels); 36 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
37 return tiling.TileXIndexFromSrcCoord(x_coord); 37 return tiling.TileXIndexFromSrcCoord(x_coord);
38 } 38 }
39 39
40 int YIndex( 40 int YIndex(
41 const gfx::Size& max_texture_size, 41 const gfx::Size& max_texture_size,
42 const gfx::Size& total_size, 42 const gfx::Rect& tiling_rect,
43 bool has_border_texels, 43 bool has_border_texels,
44 int y_coord) { 44 int y_coord) {
45 TilingData tiling(max_texture_size, total_size, has_border_texels); 45 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
46 return tiling.TileYIndexFromSrcCoord(y_coord); 46 return tiling.TileYIndexFromSrcCoord(y_coord);
47 } 47 }
48 48
49 int MinBorderXIndex( 49 int MinBorderXIndex(
50 const gfx::Size& max_texture_size, 50 const gfx::Size& max_texture_size,
51 const gfx::Size& total_size, 51 const gfx::Rect& tiling_rect,
52 bool has_border_texels, 52 bool has_border_texels,
53 int x_coord) { 53 int x_coord) {
54 TilingData tiling(max_texture_size, total_size, has_border_texels); 54 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
55 return tiling.FirstBorderTileXIndexFromSrcCoord(x_coord); 55 return tiling.FirstBorderTileXIndexFromSrcCoord(x_coord);
56 } 56 }
57 57
58 int MinBorderYIndex( 58 int MinBorderYIndex(
59 const gfx::Size& max_texture_size, 59 const gfx::Size& max_texture_size,
60 const gfx::Size& total_size, 60 const gfx::Rect& tiling_rect,
61 bool has_border_texels, 61 bool has_border_texels,
62 int y_coord) { 62 int y_coord) {
63 TilingData tiling(max_texture_size, total_size, has_border_texels); 63 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
64 return tiling.FirstBorderTileYIndexFromSrcCoord(y_coord); 64 return tiling.FirstBorderTileYIndexFromSrcCoord(y_coord);
65 } 65 }
66 66
67 int MaxBorderXIndex( 67 int MaxBorderXIndex(
68 const gfx::Size& max_texture_size, 68 const gfx::Size& max_texture_size,
69 const gfx::Size& total_size, 69 const gfx::Rect& tiling_rect,
70 bool has_border_texels, 70 bool has_border_texels,
71 int x_coord) { 71 int x_coord) {
72 TilingData tiling(max_texture_size, total_size, has_border_texels); 72 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
73 return tiling.LastBorderTileXIndexFromSrcCoord(x_coord); 73 return tiling.LastBorderTileXIndexFromSrcCoord(x_coord);
74 } 74 }
75 75
76 int MaxBorderYIndex( 76 int MaxBorderYIndex(
77 const gfx::Size& max_texture_size, 77 const gfx::Size& max_texture_size,
78 const gfx::Size& total_size, 78 const gfx::Rect& tiling_rect,
79 bool has_border_texels, 79 bool has_border_texels,
80 int y_coord) { 80 int y_coord) {
81 TilingData tiling(max_texture_size, total_size, has_border_texels); 81 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
82 return tiling.LastBorderTileYIndexFromSrcCoord(y_coord); 82 return tiling.LastBorderTileYIndexFromSrcCoord(y_coord);
83 } 83 }
84 84
85 int PosX( 85 int PosX(
86 const gfx::Size& max_texture_size, 86 const gfx::Size& max_texture_size,
87 const gfx::Size& total_size, 87 const gfx::Rect& tiling_rect,
88 bool has_border_texels, 88 bool has_border_texels,
89 int x_index) { 89 int x_index) {
90 TilingData tiling(max_texture_size, total_size, has_border_texels); 90 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
91 return tiling.TilePositionX(x_index); 91 return tiling.TilePositionX(x_index);
92 } 92 }
93 93
94 int PosY( 94 int PosY(
95 const gfx::Size& max_texture_size, 95 const gfx::Size& max_texture_size,
96 const gfx::Size& total_size, 96 const gfx::Rect& tiling_rect,
97 bool has_border_texels, 97 bool has_border_texels,
98 int y_index) { 98 int y_index) {
99 TilingData tiling(max_texture_size, total_size, has_border_texels); 99 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
100 return tiling.TilePositionY(y_index); 100 return tiling.TilePositionY(y_index);
101 } 101 }
102 102
103 int SizeX( 103 int SizeX(
104 const gfx::Size& max_texture_size, 104 const gfx::Size& max_texture_size,
105 const gfx::Size& total_size, 105 const gfx::Rect& tiling_rect,
106 bool has_border_texels, 106 bool has_border_texels,
107 int x_index) { 107 int x_index) {
108 TilingData tiling(max_texture_size, total_size, has_border_texels); 108 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
109 return tiling.TileSizeX(x_index); 109 return tiling.TileSizeX(x_index);
110 } 110 }
111 111
112 int SizeY( 112 int SizeY(
113 const gfx::Size& max_texture_size, 113 const gfx::Size& max_texture_size,
114 const gfx::Size& total_size, 114 const gfx::Rect& tiling_rect,
115 bool has_border_texels, 115 bool has_border_texels,
116 int y_index) { 116 int y_index) {
117 TilingData tiling(max_texture_size, total_size, has_border_texels); 117 TilingData tiling(max_texture_size, tiling_rect, has_border_texels);
118 return tiling.TileSizeY(y_index); 118 return tiling.TileSizeY(y_index);
119 } 119 }
120 120
121 TEST(TilingDataTest, NumTiles_NoTiling) { 121 TEST(TilingDataTest, NumTiles_NoTiling) {
122 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), false)); 122 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Rect(0, 0, 16, 16), false));
123 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(15, 15), true)); 123 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Rect(0, 0, 15, 15), true));
124 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), true)); 124 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Rect(0, 0, 16, 16), true));
125 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(1, 16), false)); 125 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Rect(0, 0, 1, 16), false));
126 EXPECT_EQ(1, NumTiles(gfx::Size(15, 15), gfx::Size(15, 15), true)); 126 EXPECT_EQ(1, NumTiles(gfx::Size(15, 15), gfx::Rect(0, 0, 15, 15), true));
127 EXPECT_EQ(1, NumTiles(gfx::Size(32, 16), gfx::Size(32, 16), false)); 127 EXPECT_EQ(1, NumTiles(gfx::Size(32, 16), gfx::Rect(0, 0, 32, 16), false));
128 EXPECT_EQ(1, NumTiles(gfx::Size(32, 16), gfx::Size(32, 16), true)); 128 EXPECT_EQ(1, NumTiles(gfx::Size(32, 16), gfx::Rect(0, 0, 32, 16), true));
129 } 129 }
130 130
131 TEST(TilingDataTest, NumTiles_TilingNoBorders) { 131 TEST(TilingDataTest, NumTiles_TilingNoBorders) {
132 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 0), false)); 132 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 0), false));
133 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(4, 0), false)); 133 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 4, 0), false));
134 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 4), false)); 134 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 4), false));
135 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(4, 0), false)); 135 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 4, 0), false));
136 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(0, 4), false)); 136 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 0, 4), false));
137 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(1, 1), false)); 137 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 1, 1), false));
138 138
139 EXPECT_EQ(1, NumTiles(gfx::Size(1, 1), gfx::Size(1, 1), false)); 139 EXPECT_EQ(1, NumTiles(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1), false));
140 EXPECT_EQ(2, NumTiles(gfx::Size(1, 1), gfx::Size(1, 2), false)); 140 EXPECT_EQ(2, NumTiles(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 2), false));
141 EXPECT_EQ(2, NumTiles(gfx::Size(1, 1), gfx::Size(2, 1), false)); 141 EXPECT_EQ(2, NumTiles(gfx::Size(1, 1), gfx::Rect(0, 0, 2, 1), false));
142 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 1), false)); 142 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 1, 1), false));
143 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 2), false)); 143 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 1, 2), false));
144 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 1), false)); 144 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 1), false));
145 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 2), false)); 145 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), false));
146 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(3, 3), false)); 146 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false));
147 147
148 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(1, 4), false)); 148 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 1, 4), false));
149 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(2, 4), false)); 149 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 2, 4), false));
150 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(3, 4), false)); 150 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 3, 4), false));
151 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(4, 4), false)); 151 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 4, 4), false));
152 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(5, 4), false)); 152 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 5, 4), false));
153 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(6, 4), false)); 153 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 6, 4), false));
154 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(7, 4), false)); 154 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 7, 4), false));
155 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(8, 4), false)); 155 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 8, 4), false));
156 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(9, 4), false)); 156 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 9, 4), false));
157 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(10, 4), false)); 157 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 10, 4), false));
158 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(11, 4), false)); 158 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 11, 4), false));
159 159
160 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(1, 5), false)); 160 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 1, 5), false));
161 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(2, 5), false)); 161 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 2, 5), false));
162 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(3, 5), false)); 162 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 3, 5), false));
163 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(4, 5), false)); 163 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 4, 5), false));
164 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(5, 5), false)); 164 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), false));
165 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(6, 5), false)); 165 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 5), false));
166 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(7, 5), false)); 166 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 7, 5), false));
167 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(8, 5), false)); 167 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 5), false));
168 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(9, 5), false)); 168 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 9, 5), false));
169 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(10, 5), false)); 169 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 5), false));
170 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(11, 5), false)); 170 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 11, 5), false));
171 171
172 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), false)); 172 EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Rect(0, 0, 16, 16), false));
173 EXPECT_EQ(1, NumTiles(gfx::Size(17, 17), gfx::Size(16, 16), false)); 173 EXPECT_EQ(1, NumTiles(gfx::Size(17, 17), gfx::Rect(0, 0, 16, 16), false));
174 EXPECT_EQ(4, NumTiles(gfx::Size(15, 15), gfx::Size(16, 16), false)); 174 EXPECT_EQ(4, NumTiles(gfx::Size(15, 15), gfx::Rect(0, 0, 16, 16), false));
175 EXPECT_EQ(4, NumTiles(gfx::Size(8, 8), gfx::Size(16, 16), false)); 175 EXPECT_EQ(4, NumTiles(gfx::Size(8, 8), gfx::Rect(0, 0, 16, 16), false));
176 EXPECT_EQ(6, NumTiles(gfx::Size(8, 8), gfx::Size(17, 16), false)); 176 EXPECT_EQ(6, NumTiles(gfx::Size(8, 8), gfx::Rect(0, 0, 17, 16), false));
177 177
178 EXPECT_EQ(8, NumTiles(gfx::Size(5, 8), gfx::Size(17, 16), false)); 178 EXPECT_EQ(8, NumTiles(gfx::Size(5, 8), gfx::Rect(0, 0, 17, 16), false));
179 } 179 }
180 180
181 TEST(TilingDataTest, NumTiles_TilingWithBorders) { 181 TEST(TilingDataTest, NumTiles_TilingWithBorders) {
182 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 0), true)); 182 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 0), true));
183 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(4, 0), true)); 183 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 4, 0), true));
184 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 4), true)); 184 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 4), true));
185 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(4, 0), true)); 185 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 4, 0), true));
186 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(0, 4), true)); 186 EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 0, 4), true));
187 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(1, 1), true)); 187 EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Rect(0, 0, 1, 1), true));
188 188
189 EXPECT_EQ(1, NumTiles(gfx::Size(1, 1), gfx::Size(1, 1), true)); 189 EXPECT_EQ(1, NumTiles(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1), true));
190 EXPECT_EQ(0, NumTiles(gfx::Size(1, 1), gfx::Size(1, 2), true)); 190 EXPECT_EQ(0, NumTiles(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 2), true));
191 EXPECT_EQ(0, NumTiles(gfx::Size(1, 1), gfx::Size(2, 1), true)); 191 EXPECT_EQ(0, NumTiles(gfx::Size(1, 1), gfx::Rect(0, 0, 2, 1), true));
192 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 1), true)); 192 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 1, 1), true));
193 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 2), true)); 193 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 1, 2), true));
194 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 1), true)); 194 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 1), true));
195 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 2), true)); 195 EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), true));
196 196
197 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(1, 3), true)); 197 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 3), true));
198 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(2, 3), true)); 198 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 2, 3), true));
199 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(3, 3), true)); 199 EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true));
200 EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Size(4, 3), true)); 200 EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), true));
201 EXPECT_EQ(3, NumTiles(gfx::Size(3, 3), gfx::Size(5, 3), true)); 201 EXPECT_EQ(3, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 5, 3), true));
202 EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Size(6, 3), true)); 202 EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 3), true));
203 EXPECT_EQ(5, NumTiles(gfx::Size(3, 3), gfx::Size(7, 3), true)); 203 EXPECT_EQ(5, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 7, 3), true));
204 204
205 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(1, 4), true)); 205 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 1, 4), true));
206 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(2, 4), true)); 206 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 2, 4), true));
207 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(3, 4), true)); 207 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 3, 4), true));
208 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(4, 4), true)); 208 EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 4, 4), true));
209 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(5, 4), true)); 209 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 5, 4), true));
210 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(6, 4), true)); 210 EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 6, 4), true));
211 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(7, 4), true)); 211 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 7, 4), true));
212 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(8, 4), true)); 212 EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 8, 4), true));
213 EXPECT_EQ(4, NumTiles(gfx::Size(4, 4), gfx::Size(9, 4), true)); 213 EXPECT_EQ(4, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 9, 4), true));
214 EXPECT_EQ(4, NumTiles(gfx::Size(4, 4), gfx::Size(10, 4), true)); 214 EXPECT_EQ(4, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 10, 4), true));
215 EXPECT_EQ(5, NumTiles(gfx::Size(4, 4), gfx::Size(11, 4), true)); 215 EXPECT_EQ(5, NumTiles(gfx::Size(4, 4), gfx::Rect(0, 0, 11, 4), true));
216 216
217 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(1, 5), true)); 217 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 1, 5), true));
218 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(2, 5), true)); 218 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 2, 5), true));
219 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(3, 5), true)); 219 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 3, 5), true));
220 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(4, 5), true)); 220 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 4, 5), true));
221 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(5, 5), true)); 221 EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), true));
222 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(6, 5), true)); 222 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 5), true));
223 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(7, 5), true)); 223 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 7, 5), true));
224 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(8, 5), true)); 224 EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 5), true));
225 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(9, 5), true)); 225 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 9, 5), true));
226 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(10, 5), true)); 226 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 5), true));
227 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(11, 5), true)); 227 EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Rect(0, 0, 11, 5), true));
228 228
229 EXPECT_EQ(30, NumTiles(gfx::Size(8, 5), gfx::Size(16, 32), true)); 229 EXPECT_EQ(30, NumTiles(gfx::Size(8, 5), gfx::Rect(0, 0, 16, 32), true));
230 } 230 }
231 231
232 TEST(TilingDataTest, TileXIndexFromSrcCoord) { 232 TEST(TilingDataTest, TileXIndexFromSrcCoord) {
233 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); 233 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 0));
234 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); 234 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 1));
235 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); 235 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 2));
236 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); 236 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 3));
237 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); 237 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 4));
238 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); 238 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 5));
239 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); 239 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 6));
240 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); 240 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 7));
241 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); 241 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 8));
242 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); 242 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 9));
243 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); 243 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 10));
244 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); 244 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 11));
245 245
246 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); 246 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 0));
247 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); 247 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 1));
248 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); 248 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 2));
249 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); 249 EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 3));
250 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); 250 EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 4));
251 EXPECT_EQ(4, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); 251 EXPECT_EQ(4, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 5));
252 EXPECT_EQ(5, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); 252 EXPECT_EQ(5, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 6));
253 EXPECT_EQ(6, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); 253 EXPECT_EQ(6, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 7));
254 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); 254 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 8));
255 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); 255 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 9));
256 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); 256 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 10));
257 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); 257 EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 11));
258 258
259 EXPECT_EQ(0, XIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); 259 EXPECT_EQ(0, XIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1), false, 0));
260 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); 260 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), false, 0));
261 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); 261 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), false, 1));
262 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); 262 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false, 0));
263 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); 263 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false, 1));
264 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); 264 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false, 2));
265 265
266 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); 266 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), false, 0));
267 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); 267 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), false, 1));
268 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); 268 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), false, 2));
269 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); 269 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), false, 3));
270 270
271 EXPECT_EQ(0, XIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); 271 EXPECT_EQ(0, XIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1), true, 0));
272 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); 272 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), true, 0));
273 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); 273 EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), true, 1));
274 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); 274 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true, 0));
275 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); 275 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true, 1));
276 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); 276 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true, 2));
277 277
278 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); 278 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), true, 0));
279 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); 279 EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), true, 1));
280 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); 280 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), true, 2));
281 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); 281 EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3), true, 3));
282 } 282 }
283 283
284 TEST(TilingDataTest, FirstBorderTileXIndexFromSrcCoord) { 284 TEST(TilingDataTest, FirstBorderTileXIndexFromSrcCoord) {
285 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); 285 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
286 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); 286 false, 0));
287 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); 287 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
288 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); 288 false, 1));
289 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); 289 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
290 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); 290 false, 2));
291 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); 291 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
292 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); 292 false, 3));
293 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); 293 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
294 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); 294 false, 4));
295 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); 295 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
296 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); 296 false, 5));
297 297 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
298 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); 298 false, 6));
299 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); 299 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
300 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); 300 false, 7));
301 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); 301 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
302 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); 302 false, 8));
303 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); 303 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
304 EXPECT_EQ(4, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); 304 false, 9));
305 EXPECT_EQ(5, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); 305 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
306 EXPECT_EQ(6, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); 306 false, 10));
307 EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); 307 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
308 EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); 308 false, 11));
309 EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); 309
310 310 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
311 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); 311 true, 0));
312 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); 312 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
313 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); 313 true, 1));
314 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); 314 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
315 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); 315 true, 2));
316 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); 316 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
317 317 true, 3));
318 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); 318 EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
319 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); 319 true, 4));
320 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); 320 EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
321 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); 321 true, 5));
322 322 EXPECT_EQ(4, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
323 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); 323 true, 6));
324 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); 324 EXPECT_EQ(5, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
325 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); 325 true, 7));
326 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); 326 EXPECT_EQ(6, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
327 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); 327 true, 8));
328 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); 328 EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
329 329 true, 9));
330 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); 330 EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
331 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); 331 true, 10));
332 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); 332 EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
333 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); 333 true, 11));
334
335 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
336 false, 0));
337 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
338 false, 0));
339 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
340 false, 1));
341 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
342 false, 0));
343 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
344 false, 1));
345 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
346 false, 2));
347
348 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
349 false, 0));
350 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
351 false, 1));
352 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
353 false, 2));
354 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
355 false, 3));
356
357 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
358 true, 0));
359 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
360 true, 0));
361 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
362 true, 1));
363 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
364 true, 0));
365 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
366 true, 1));
367 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
368 true, 2));
369
370 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
371 true, 0));
372 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
373 true, 1));
374 EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
375 true, 2));
376 EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
377 true, 3));
334 } 378 }
335 379
336 TEST(TilingDataTest, LastBorderTileXIndexFromSrcCoord) { 380 TEST(TilingDataTest, LastBorderTileXIndexFromSrcCoord) {
337 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); 381 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
338 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); 382 false, 0));
339 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); 383 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
340 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); 384 false, 1));
341 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); 385 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
342 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); 386 false, 2));
343 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); 387 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
344 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); 388 false, 3));
345 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); 389 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
346 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); 390 false, 4));
347 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); 391 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
348 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); 392 false, 5));
349 393 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
350 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); 394 false, 6));
351 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); 395 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
352 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); 396 false, 7));
353 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); 397 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
354 EXPECT_EQ(4, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); 398 false, 8));
355 EXPECT_EQ(5, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); 399 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
356 EXPECT_EQ(6, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); 400 false, 9));
357 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); 401 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
358 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); 402 false, 10));
359 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); 403 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
360 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); 404 false, 11));
361 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); 405
362 406 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
363 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); 407 true, 0));
364 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); 408 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
365 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); 409 true, 1));
366 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); 410 EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
367 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); 411 true, 2));
368 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); 412 EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
369 413 true, 3));
370 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); 414 EXPECT_EQ(4, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
371 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); 415 true, 4));
372 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); 416 EXPECT_EQ(5, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
373 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); 417 true, 5));
374 418 EXPECT_EQ(6, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
375 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); 419 true, 6));
376 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); 420 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
377 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); 421 true, 7));
378 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); 422 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
379 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); 423 true, 8));
380 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); 424 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
381 425 true, 9));
382 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); 426 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
383 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); 427 true, 10));
384 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); 428 EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
385 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); 429 true, 11));
430
431 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
432 false, 0));
433 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
434 false, 0));
435 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
436 false, 1));
437 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
438 false, 0));
439 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
440 false, 1));
441 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
442 false, 2));
443
444 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
445 false, 0));
446 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
447 false, 1));
448 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
449 false, 2));
450 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
451 false, 3));
452
453 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
454 true, 0));
455 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
456 true, 0));
457 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
458 true, 1));
459 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
460 true, 0));
461 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
462 true, 1));
463 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
464 true, 2));
465
466 EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
467 true, 0));
468 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
469 true, 1));
470 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
471 true, 2));
472 EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 4, 3),
473 true, 3));
386 } 474 }
387 475
388 TEST(TilingDataTest, TileYIndexFromSrcCoord) { 476 TEST(TilingDataTest, TileYIndexFromSrcCoord) {
389 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); 477 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 0));
390 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); 478 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 1));
391 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); 479 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 2));
392 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); 480 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 3));
393 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); 481 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 4));
394 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); 482 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 5));
395 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); 483 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 6));
396 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); 484 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 7));
397 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); 485 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 8));
398 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); 486 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 9));
399 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); 487 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 10));
400 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); 488 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), false, 11));
401 489
402 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); 490 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 0));
403 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); 491 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 1));
404 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); 492 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 2));
405 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); 493 EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 3));
406 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); 494 EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 4));
407 EXPECT_EQ(4, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); 495 EXPECT_EQ(4, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 5));
408 EXPECT_EQ(5, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); 496 EXPECT_EQ(5, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 6));
409 EXPECT_EQ(6, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); 497 EXPECT_EQ(6, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 7));
410 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); 498 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 8));
411 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); 499 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 9));
412 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); 500 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 10));
413 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); 501 EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10), true, 11));
414 502
415 EXPECT_EQ(0, YIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); 503 EXPECT_EQ(0, YIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1), false, 0));
416 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); 504 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), false, 0));
417 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); 505 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), false, 1));
418 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); 506 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false, 0));
419 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); 507 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false, 1));
420 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); 508 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), false, 2));
421 509
422 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); 510 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), false, 0));
423 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); 511 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), false, 1));
424 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); 512 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), false, 2));
425 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); 513 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), false, 3));
426 514
427 EXPECT_EQ(0, YIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); 515 EXPECT_EQ(0, YIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1), true, 0));
428 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); 516 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), true, 0));
429 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); 517 EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2), true, 1));
430 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); 518 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true, 0));
431 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); 519 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true, 1));
432 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); 520 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3), true, 2));
433 521
434 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); 522 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), true, 0));
435 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); 523 EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), true, 1));
436 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); 524 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), true, 2));
437 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); 525 EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4), true, 3));
438 } 526 }
439 527
440 TEST(TilingDataTest, FirstBorderTileYIndexFromSrcCoord) { 528 TEST(TilingDataTest, FirstBorderTileYIndexFromSrcCoord) {
441 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); 529 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
442 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); 530 false, 0));
443 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); 531 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
444 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); 532 false, 1));
445 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); 533 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
446 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); 534 false, 2));
447 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); 535 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
448 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); 536 false, 3));
449 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); 537 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
450 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); 538 false, 4));
451 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); 539 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
452 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); 540 false, 5));
453 541 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
454 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); 542 false, 6));
455 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); 543 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
456 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); 544 false, 7));
457 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); 545 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
458 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); 546 false, 8));
459 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); 547 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
460 EXPECT_EQ(4, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); 548 false, 9));
461 EXPECT_EQ(5, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); 549 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
462 EXPECT_EQ(6, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); 550 false, 10));
463 EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); 551 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
464 EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); 552 false, 11));
465 EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); 553
466 554 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
467 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); 555 true, 0));
468 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); 556 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
469 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); 557 true, 1));
470 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); 558 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
471 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); 559 true, 2));
472 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); 560 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
473 561 true, 3));
474 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); 562 EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
475 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); 563 true, 4));
476 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); 564 EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
477 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); 565 true, 5));
478 566 EXPECT_EQ(4, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
479 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); 567 true, 6));
480 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); 568 EXPECT_EQ(5, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
481 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); 569 true, 7));
482 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); 570 EXPECT_EQ(6, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
483 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); 571 true, 8));
484 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); 572 EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
485 573 true, 9));
486 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); 574 EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
487 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); 575 true, 10));
488 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); 576 EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
489 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); 577 true, 11));
578
579 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
580 false, 0));
581 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
582 false, 0));
583 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
584 false, 1));
585 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
586 false, 0));
587 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
588 false, 1));
589 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
590 false, 2));
591
592 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
593 false, 0));
594 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
595 false, 1));
596 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
597 false, 2));
598 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
599 false, 3));
600
601 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
602 true, 0));
603 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
604 true, 0));
605 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
606 true, 1));
607 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
608 true, 0));
609 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
610 true, 1));
611 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
612 true, 2));
613
614 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
615 true, 0));
616 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
617 true, 1));
618 EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
619 true, 2));
620 EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
621 true, 3));
490 } 622 }
491 623
492 TEST(TilingDataTest, LastBorderTileYIndexFromSrcCoord) { 624 TEST(TilingDataTest, LastBorderTileYIndexFromSrcCoord) {
493 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); 625 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
494 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); 626 false, 0));
495 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); 627 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
496 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); 628 false, 1));
497 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); 629 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
498 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); 630 false, 2));
499 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); 631 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
500 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); 632 false, 3));
501 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); 633 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
502 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); 634 false, 4));
503 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); 635 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
504 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); 636 false, 5));
505 637 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
506 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); 638 false, 6));
507 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); 639 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
508 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); 640 false, 7));
509 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); 641 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
510 EXPECT_EQ(4, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); 642 false, 8));
511 EXPECT_EQ(5, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); 643 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
512 EXPECT_EQ(6, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); 644 false, 9));
513 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); 645 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
514 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); 646 false, 10));
515 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); 647 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
516 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); 648 false, 11));
517 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); 649
518 650 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
519 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); 651 true, 0));
520 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); 652 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
521 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); 653 true, 1));
522 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); 654 EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
523 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); 655 true, 2));
524 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); 656 EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
525 657 true, 3));
526 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); 658 EXPECT_EQ(4, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
527 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); 659 true, 4));
528 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); 660 EXPECT_EQ(5, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
529 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); 661 true, 5));
530 662 EXPECT_EQ(6, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
531 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); 663 true, 6));
532 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); 664 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
533 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); 665 true, 7));
534 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); 666 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
535 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); 667 true, 8));
536 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); 668 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
537 669 true, 9));
538 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); 670 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
539 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); 671 true, 10));
540 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); 672 EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 10, 10),
541 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); 673 true, 11));
674
675 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
676 false, 0));
677 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
678 false, 0));
679 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
680 false, 1));
681 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
682 false, 0));
683 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
684 false, 1));
685 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
686 false, 2));
687
688 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
689 false, 0));
690 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
691 false, 1));
692 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
693 false, 2));
694 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
695 false, 3));
696
697 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(1, 1), gfx::Rect(0, 0, 1, 1),
698 true, 0));
699 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
700 true, 0));
701 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Rect(0, 0, 2, 2),
702 true, 1));
703 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
704 true, 0));
705 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
706 true, 1));
707 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 3),
708 true, 2));
709
710 EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
711 true, 0));
712 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
713 true, 1));
714 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
715 true, 2));
716 EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 4),
717 true, 3));
542 } 718 }
543 719
544 TEST(TilingDataTest, TileSizeX) { 720 TEST(TilingDataTest, TileSizeX) {
545 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(5, 5), false, 0)); 721 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), false, 0));
546 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(5, 5), true, 0)); 722 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), true, 0));
547 723
548 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), false, 0)); 724 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), false, 0));
549 EXPECT_EQ(1, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), false, 1)); 725 EXPECT_EQ(1, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), false, 1));
550 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), true, 0)); 726 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), true, 0));
551 EXPECT_EQ(2, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), true, 1)); 727 EXPECT_EQ(2, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), true, 1));
552 728
553 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), false, 0)); 729 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), false, 0));
554 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), false, 1)); 730 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), false, 1));
555 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), true, 0)); 731 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), true, 0));
556 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), true, 1)); 732 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), true, 1));
557 733
558 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), false, 0)); 734 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), false, 0));
559 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), false, 1)); 735 EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), false, 1));
560 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), true, 0)); 736 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), true, 0));
561 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), true, 1)); 737 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), true, 1));
562 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), true, 2)); 738 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), true, 2));
563 739
564 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(11, 11), true, 2)); 740 EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 11, 11), true, 2));
565 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(12, 12), true, 2)); 741 EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Rect(0, 0, 12, 12), true, 2));
566 742
567 EXPECT_EQ(3, SizeX(gfx::Size(5, 9), gfx::Size(12, 17), true, 2)); 743 EXPECT_EQ(3, SizeX(gfx::Size(5, 9), gfx::Rect(0, 0, 12, 17), true, 2));
568 } 744 }
569 745
570 TEST(TilingDataTest, TileSizeY) { 746 TEST(TilingDataTest, TileSizeY) {
571 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(5, 5), false, 0)); 747 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), false, 0));
572 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(5, 5), true, 0)); 748 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), true, 0));
573 749
574 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), false, 0)); 750 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), false, 0));
575 EXPECT_EQ(1, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), false, 1)); 751 EXPECT_EQ(1, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), false, 1));
576 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), true, 0)); 752 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), true, 0));
577 EXPECT_EQ(2, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), true, 1)); 753 EXPECT_EQ(2, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 6, 6), true, 1));
578 754
579 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), false, 0)); 755 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), false, 0));
580 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), false, 1)); 756 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), false, 1));
581 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), true, 0)); 757 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), true, 0));
582 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), true, 1)); 758 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 8, 8), true, 1));
583 759
584 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), false, 0)); 760 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), false, 0));
585 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), false, 1)); 761 EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), false, 1));
586 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), true, 0)); 762 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), true, 0));
587 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), true, 1)); 763 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), true, 1));
588 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), true, 2)); 764 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 10, 10), true, 2));
589 765
590 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(11, 11), true, 2)); 766 EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 11, 11), true, 2));
591 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(12, 12), true, 2)); 767 EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Rect(0, 0, 12, 12), true, 2));
592 768
593 EXPECT_EQ(3, SizeY(gfx::Size(9, 5), gfx::Size(17, 12), true, 2)); 769 EXPECT_EQ(3, SizeY(gfx::Size(9, 5), gfx::Rect(0, 0, 17, 12), true, 2));
594 } 770 }
595 771
596 TEST(TilingDataTest, TileSizeX_and_TilePositionX) { 772 TEST(TilingDataTest, TileSizeX_and_TilePositionX) {
597 // Single tile cases: 773 // Single tile cases:
598 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); 774 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), false, 0));
599 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); 775 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), false, 0));
600 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 100), false, 0)); 776 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 100), false, 0));
601 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 100), false, 0)); 777 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 100), false, 0));
602 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 1), false, 0)); 778 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 1), false, 0));
603 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 1), false, 0)); 779 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 1), false, 0));
604 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 100), false, 0)); 780 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 100), false, 0));
605 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 100), false, 0)); 781 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 100), false, 0));
606 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); 782 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), true, 0));
607 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); 783 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), true, 0));
608 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 100), true, 0)); 784 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 100), true, 0));
609 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 100), true, 0)); 785 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 100), true, 0));
610 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 1), true, 0)); 786 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 1), true, 0));
611 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 1), true, 0)); 787 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 1), true, 0));
612 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 100), true, 0)); 788 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 100), true, 0));
613 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 100), true, 0)); 789 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 3, 100), true, 0));
614 790
615 // Multiple tiles: 791 // Multiple tiles:
616 // no border 792 // no border
617 // positions 0, 3 793 // positions 0, 3
618 EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Size(6, 1), false)); 794 EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), false));
619 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), false, 0)); 795 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), false, 0));
620 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), false, 1)); 796 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), false, 1));
621 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(6, 1), false, 0)); 797 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), false, 0));
622 EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Size(6, 1), false, 1)); 798 EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), false, 1));
623 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 100), false, 0)); 799 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 100), false, 0));
624 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 100), false, 1)); 800 EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 100), false, 1));
625 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(6, 100), false, 0)); 801 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 100), false, 0));
626 EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Size(6, 100), false, 1)); 802 EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 100), false, 1));
627 803
628 // Multiple tiles: 804 // Multiple tiles:
629 // with border 805 // with border
630 // positions 0, 2, 3, 4 806 // positions 0, 2, 3, 4
631 EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Size(6, 1), true)); 807 EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true));
632 EXPECT_EQ(2, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 0)); 808 EXPECT_EQ(2, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 0));
633 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 1)); 809 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 1));
634 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 2)); 810 EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 2));
635 EXPECT_EQ(2, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 3)); 811 EXPECT_EQ(2, SizeX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 3));
636 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 0)); 812 EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 0));
637 EXPECT_EQ(2, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 1)); 813 EXPECT_EQ(2, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 1));
638 EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 2)); 814 EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 2));
639 EXPECT_EQ(4, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 3)); 815 EXPECT_EQ(4, PosX(gfx::Size(3, 3), gfx::Rect(0, 0, 6, 1), true, 3));
640 EXPECT_EQ(2, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 0)); 816 EXPECT_EQ(2, SizeX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 0));
641 EXPECT_EQ(1, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 1)); 817 EXPECT_EQ(1, SizeX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 1));
642 EXPECT_EQ(1, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 2)); 818 EXPECT_EQ(1, SizeX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 2));
643 EXPECT_EQ(2, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 3)); 819 EXPECT_EQ(2, SizeX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 3));
644 EXPECT_EQ(0, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 0)); 820 EXPECT_EQ(0, PosX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 0));
645 EXPECT_EQ(2, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 1)); 821 EXPECT_EQ(2, PosX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 1));
646 EXPECT_EQ(3, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 2)); 822 EXPECT_EQ(3, PosX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 2));
647 EXPECT_EQ(4, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 3)); 823 EXPECT_EQ(4, PosX(gfx::Size(3, 7), gfx::Rect(0, 0, 6, 100), true, 3));
648 } 824 }
649 825
650 TEST(TilingDataTest, TileSizeY_and_TilePositionY) { 826 TEST(TilingDataTest, TileSizeY_and_TilePositionY) {
651 // Single tile cases: 827 // Single tile cases:
652 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); 828 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), false, 0));
653 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); 829 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), false, 0));
654 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(100, 1), false, 0)); 830 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 1), false, 0));
655 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 1), false, 0)); 831 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 1), false, 0));
656 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 3), false, 0)); 832 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 3), false, 0));
657 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 3), false, 0)); 833 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 3), false, 0));
658 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 3), false, 0)); 834 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 3), false, 0));
659 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 3), false, 0)); 835 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 3), false, 0));
660 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); 836 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), true, 0));
661 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); 837 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 1), true, 0));
662 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(100, 1), true, 0)); 838 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 1), true, 0));
663 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 1), true, 0)); 839 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 1), true, 0));
664 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 3), true, 0)); 840 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 3), true, 0));
665 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 3), true, 0)); 841 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 3), true, 0));
666 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 3), true, 0)); 842 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 3), true, 0));
667 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 3), true, 0)); 843 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 3), true, 0));
668 844
669 // Multiple tiles: 845 // Multiple tiles:
670 // no border 846 // no border
671 // positions 0, 3 847 // positions 0, 3
672 EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Size(1, 6), false)); 848 EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), false));
673 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), false, 0)); 849 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), false, 0));
674 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), false, 1)); 850 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), false, 1));
675 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 6), false, 0)); 851 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), false, 0));
676 EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Size(1, 6), false, 1)); 852 EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), false, 1));
677 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 6), false, 0)); 853 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 6), false, 0));
678 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 6), false, 1)); 854 EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 6), false, 1));
679 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 6), false, 0)); 855 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 6), false, 0));
680 EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Size(100, 6), false, 1)); 856 EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 100, 6), false, 1));
681 857
682 // Multiple tiles: 858 // Multiple tiles:
683 // with border 859 // with border
684 // positions 0, 2, 3, 4 860 // positions 0, 2, 3, 4
685 EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Size(1, 6), true)); 861 EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true));
686 EXPECT_EQ(2, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 0)); 862 EXPECT_EQ(2, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 0));
687 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 1)); 863 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 1));
688 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 2)); 864 EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 2));
689 EXPECT_EQ(2, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 3)); 865 EXPECT_EQ(2, SizeY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 3));
690 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 0)); 866 EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 0));
691 EXPECT_EQ(2, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 1)); 867 EXPECT_EQ(2, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 1));
692 EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 2)); 868 EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 2));
693 EXPECT_EQ(4, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 3)); 869 EXPECT_EQ(4, PosY(gfx::Size(3, 3), gfx::Rect(0, 0, 1, 6), true, 3));
694 EXPECT_EQ(2, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 0)); 870 EXPECT_EQ(2, SizeY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 0));
695 EXPECT_EQ(1, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 1)); 871 EXPECT_EQ(1, SizeY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 1));
696 EXPECT_EQ(1, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 2)); 872 EXPECT_EQ(1, SizeY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 2));
697 EXPECT_EQ(2, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 3)); 873 EXPECT_EQ(2, SizeY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 3));
698 EXPECT_EQ(0, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 0)); 874 EXPECT_EQ(0, PosY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 0));
699 EXPECT_EQ(2, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 1)); 875 EXPECT_EQ(2, PosY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 1));
700 EXPECT_EQ(3, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 2)); 876 EXPECT_EQ(3, PosY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 2));
701 EXPECT_EQ(4, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 3)); 877 EXPECT_EQ(4, PosY(gfx::Size(7, 3), gfx::Rect(0, 0, 100, 6), true, 3));
702 } 878 }
703 879
704 TEST(TilingDataTest, SetTotalSize) { 880 TEST(TilingDataTest, SetTotalSize) {
705 TilingData data(gfx::Size(5, 5), gfx::Size(5, 5), false); 881 TilingData data(gfx::Size(5, 5), gfx::Rect(0, 0, 5, 5), false);
706 EXPECT_EQ(5, data.total_size().width()); 882 EXPECT_EQ(0, data.tiling_rect().x());
707 EXPECT_EQ(5, data.total_size().height()); 883 EXPECT_EQ(0, data.tiling_rect().y());
884 EXPECT_EQ(5, data.tiling_rect().width());
885 EXPECT_EQ(5, data.tiling_rect().height());
708 EXPECT_EQ(1, data.num_tiles_x()); 886 EXPECT_EQ(1, data.num_tiles_x());
709 EXPECT_EQ(5, data.TileSizeX(0)); 887 EXPECT_EQ(5, data.TileSizeX(0));
710 EXPECT_EQ(1, data.num_tiles_y()); 888 EXPECT_EQ(1, data.num_tiles_y());
711 EXPECT_EQ(5, data.TileSizeY(0)); 889 EXPECT_EQ(5, data.TileSizeY(0));
712 890
713 data.SetTotalSize(gfx::Size(6, 5)); 891 data.SetTilingRect(gfx::Rect(0, 0, 6, 5));
714 EXPECT_EQ(6, data.total_size().width()); 892 EXPECT_EQ(0, data.tiling_rect().x());
715 EXPECT_EQ(5, data.total_size().height()); 893 EXPECT_EQ(0, data.tiling_rect().y());
894 EXPECT_EQ(6, data.tiling_rect().width());
895 EXPECT_EQ(5, data.tiling_rect().height());
716 EXPECT_EQ(2, data.num_tiles_x()); 896 EXPECT_EQ(2, data.num_tiles_x());
717 EXPECT_EQ(5, data.TileSizeX(0)); 897 EXPECT_EQ(5, data.TileSizeX(0));
718 EXPECT_EQ(1, data.TileSizeX(1)); 898 EXPECT_EQ(1, data.TileSizeX(1));
719 EXPECT_EQ(1, data.num_tiles_y()); 899 EXPECT_EQ(1, data.num_tiles_y());
720 EXPECT_EQ(5, data.TileSizeY(0)); 900 EXPECT_EQ(5, data.TileSizeY(0));
721 901
722 data.SetTotalSize(gfx::Size(5, 12)); 902 data.SetTilingRect(gfx::Rect(0, 0, 5, 12));
723 EXPECT_EQ(5, data.total_size().width()); 903 EXPECT_EQ(0, data.tiling_rect().x());
724 EXPECT_EQ(12, data.total_size().height()); 904 EXPECT_EQ(0, data.tiling_rect().y());
905 EXPECT_EQ(5, data.tiling_rect().width());
906 EXPECT_EQ(12, data.tiling_rect().height());
725 EXPECT_EQ(1, data.num_tiles_x()); 907 EXPECT_EQ(1, data.num_tiles_x());
726 EXPECT_EQ(5, data.TileSizeX(0)); 908 EXPECT_EQ(5, data.TileSizeX(0));
727 EXPECT_EQ(3, data.num_tiles_y()); 909 EXPECT_EQ(3, data.num_tiles_y());
728 EXPECT_EQ(5, data.TileSizeY(0)); 910 EXPECT_EQ(5, data.TileSizeY(0));
729 EXPECT_EQ(5, data.TileSizeY(1)); 911 EXPECT_EQ(5, data.TileSizeY(1));
730 EXPECT_EQ(2, data.TileSizeY(2)); 912 EXPECT_EQ(2, data.TileSizeY(2));
731 } 913 }
732 914
733 TEST(TilingDataTest, SetMaxTextureSizeNoBorders) { 915 TEST(TilingDataTest, SetMaxTextureSizeNoBorders) {
734 TilingData data(gfx::Size(8, 8), gfx::Size(16, 32), false); 916 TilingData data(gfx::Size(8, 8), gfx::Rect(0, 0, 16, 32), false);
735 EXPECT_EQ(2, data.num_tiles_x()); 917 EXPECT_EQ(2, data.num_tiles_x());
736 EXPECT_EQ(4, data.num_tiles_y()); 918 EXPECT_EQ(4, data.num_tiles_y());
737 919
738 data.SetMaxTextureSize(gfx::Size(32, 32)); 920 data.SetMaxTextureSize(gfx::Size(32, 32));
739 EXPECT_EQ(gfx::Size(32, 32), data.max_texture_size()); 921 EXPECT_EQ(gfx::Size(32, 32), data.max_texture_size());
740 EXPECT_EQ(1, data.num_tiles_x()); 922 EXPECT_EQ(1, data.num_tiles_x());
741 EXPECT_EQ(1, data.num_tiles_y()); 923 EXPECT_EQ(1, data.num_tiles_y());
742 924
743 data.SetMaxTextureSize(gfx::Size(2, 2)); 925 data.SetMaxTextureSize(gfx::Size(2, 2));
744 EXPECT_EQ(gfx::Size(2, 2), data.max_texture_size()); 926 EXPECT_EQ(gfx::Size(2, 2), data.max_texture_size());
745 EXPECT_EQ(8, data.num_tiles_x()); 927 EXPECT_EQ(8, data.num_tiles_x());
746 EXPECT_EQ(16, data.num_tiles_y()); 928 EXPECT_EQ(16, data.num_tiles_y());
747 929
748 data.SetMaxTextureSize(gfx::Size(5, 5)); 930 data.SetMaxTextureSize(gfx::Size(5, 5));
749 EXPECT_EQ(gfx::Size(5, 5), data.max_texture_size()); 931 EXPECT_EQ(gfx::Size(5, 5), data.max_texture_size());
750 EXPECT_EQ(4, data.num_tiles_x()); 932 EXPECT_EQ(4, data.num_tiles_x());
751 EXPECT_EQ(7, data.num_tiles_y()); 933 EXPECT_EQ(7, data.num_tiles_y());
752 934
753 data.SetMaxTextureSize(gfx::Size(8, 5)); 935 data.SetMaxTextureSize(gfx::Size(8, 5));
754 EXPECT_EQ(gfx::Size(8, 5), data.max_texture_size()); 936 EXPECT_EQ(gfx::Size(8, 5), data.max_texture_size());
755 EXPECT_EQ(2, data.num_tiles_x()); 937 EXPECT_EQ(2, data.num_tiles_x());
756 EXPECT_EQ(7, data.num_tiles_y()); 938 EXPECT_EQ(7, data.num_tiles_y());
757 } 939 }
758 940
759 TEST(TilingDataTest, SetMaxTextureSizeBorders) { 941 TEST(TilingDataTest, SetMaxTextureSizeBorders) {
760 TilingData data(gfx::Size(8, 8), gfx::Size(16, 32), true); 942 TilingData data(gfx::Size(8, 8), gfx::Rect(0, 0, 16, 32), true);
761 EXPECT_EQ(3, data.num_tiles_x()); 943 EXPECT_EQ(3, data.num_tiles_x());
762 EXPECT_EQ(5, data.num_tiles_y()); 944 EXPECT_EQ(5, data.num_tiles_y());
763 945
764 data.SetMaxTextureSize(gfx::Size(32, 32)); 946 data.SetMaxTextureSize(gfx::Size(32, 32));
765 EXPECT_EQ(gfx::Size(32, 32), data.max_texture_size()); 947 EXPECT_EQ(gfx::Size(32, 32), data.max_texture_size());
766 EXPECT_EQ(1, data.num_tiles_x()); 948 EXPECT_EQ(1, data.num_tiles_x());
767 EXPECT_EQ(1, data.num_tiles_y()); 949 EXPECT_EQ(1, data.num_tiles_y());
768 950
769 data.SetMaxTextureSize(gfx::Size(2, 2)); 951 data.SetMaxTextureSize(gfx::Size(2, 2));
770 EXPECT_EQ(gfx::Size(2, 2), data.max_texture_size()); 952 EXPECT_EQ(gfx::Size(2, 2), data.max_texture_size());
771 EXPECT_EQ(0, data.num_tiles_x()); 953 EXPECT_EQ(0, data.num_tiles_x());
772 EXPECT_EQ(0, data.num_tiles_y()); 954 EXPECT_EQ(0, data.num_tiles_y());
773 955
774 data.SetMaxTextureSize(gfx::Size(5, 5)); 956 data.SetMaxTextureSize(gfx::Size(5, 5));
775 EXPECT_EQ(gfx::Size(5, 5), data.max_texture_size()); 957 EXPECT_EQ(gfx::Size(5, 5), data.max_texture_size());
776 EXPECT_EQ(5, data.num_tiles_x()); 958 EXPECT_EQ(5, data.num_tiles_x());
777 EXPECT_EQ(10, data.num_tiles_y()); 959 EXPECT_EQ(10, data.num_tiles_y());
778 960
779 data.SetMaxTextureSize(gfx::Size(8, 5)); 961 data.SetMaxTextureSize(gfx::Size(8, 5));
780 EXPECT_EQ(gfx::Size(8, 5), data.max_texture_size()); 962 EXPECT_EQ(gfx::Size(8, 5), data.max_texture_size());
781 EXPECT_EQ(3, data.num_tiles_x()); 963 EXPECT_EQ(3, data.num_tiles_x());
782 EXPECT_EQ(10, data.num_tiles_y()); 964 EXPECT_EQ(10, data.num_tiles_y());
783 } 965 }
784 966
785 TEST(TilingDataTest, Assignment) { 967 TEST(TilingDataTest, Assignment) {
786 { 968 {
787 TilingData source(gfx::Size(8, 8), gfx::Size(16, 32), true); 969 TilingData source(gfx::Size(8, 8), gfx::Rect(0, 0, 16, 32), true);
788 TilingData dest = source; 970 TilingData dest = source;
789 EXPECT_EQ(source.border_texels(), dest.border_texels()); 971 EXPECT_EQ(source.border_texels(), dest.border_texels());
790 EXPECT_EQ(source.max_texture_size(), dest.max_texture_size()); 972 EXPECT_EQ(source.max_texture_size(), dest.max_texture_size());
791 EXPECT_EQ(source.num_tiles_x(), dest.num_tiles_x()); 973 EXPECT_EQ(source.num_tiles_x(), dest.num_tiles_x());
792 EXPECT_EQ(source.num_tiles_y(), dest.num_tiles_y()); 974 EXPECT_EQ(source.num_tiles_y(), dest.num_tiles_y());
793 EXPECT_EQ(source.total_size().width(), dest.total_size().width()); 975 EXPECT_EQ(source.tiling_rect().x(), dest.tiling_rect().x());
794 EXPECT_EQ(source.total_size().height(), dest.total_size().height()); 976 EXPECT_EQ(source.tiling_rect().y(), dest.tiling_rect().y());
977 EXPECT_EQ(source.tiling_rect().width(), dest.tiling_rect().width());
978 EXPECT_EQ(source.tiling_rect().height(), dest.tiling_rect().height());
795 } 979 }
796 { 980 {
797 TilingData source(gfx::Size(7, 3), gfx::Size(6, 100), false); 981 TilingData source(gfx::Size(7, 3), gfx::Rect(0, 0, 6, 100), false);
798 TilingData dest(source); 982 TilingData dest(source);
799 EXPECT_EQ(source.border_texels(), dest.border_texels()); 983 EXPECT_EQ(source.border_texels(), dest.border_texels());
800 EXPECT_EQ(source.max_texture_size(), dest.max_texture_size()); 984 EXPECT_EQ(source.max_texture_size(), dest.max_texture_size());
801 EXPECT_EQ(source.num_tiles_x(), dest.num_tiles_x()); 985 EXPECT_EQ(source.num_tiles_x(), dest.num_tiles_x());
802 EXPECT_EQ(source.num_tiles_y(), dest.num_tiles_y()); 986 EXPECT_EQ(source.num_tiles_y(), dest.num_tiles_y());
803 EXPECT_EQ(source.total_size().width(), dest.total_size().width()); 987 EXPECT_EQ(source.tiling_rect().x(), dest.tiling_rect().x());
804 EXPECT_EQ(source.total_size().height(), dest.total_size().height()); 988 EXPECT_EQ(source.tiling_rect().y(), dest.tiling_rect().y());
989 EXPECT_EQ(source.tiling_rect().width(), dest.tiling_rect().width());
990 EXPECT_EQ(source.tiling_rect().height(), dest.tiling_rect().height());
805 } 991 }
806 } 992 }
807 993
808 TEST(TilingDataTest, SetBorderTexels) { 994 TEST(TilingDataTest, SetBorderTexels) {
809 TilingData data(gfx::Size(8, 8), gfx::Size(16, 32), false); 995 TilingData data(gfx::Size(8, 8), gfx::Rect(0, 0, 16, 32), false);
810 EXPECT_EQ(2, data.num_tiles_x()); 996 EXPECT_EQ(2, data.num_tiles_x());
811 EXPECT_EQ(4, data.num_tiles_y()); 997 EXPECT_EQ(4, data.num_tiles_y());
812 998
813 data.SetHasBorderTexels(true); 999 data.SetHasBorderTexels(true);
814 EXPECT_EQ(3, data.num_tiles_x()); 1000 EXPECT_EQ(3, data.num_tiles_x());
815 EXPECT_EQ(5, data.num_tiles_y()); 1001 EXPECT_EQ(5, data.num_tiles_y());
816 1002
817 data.SetHasBorderTexels(true); 1003 data.SetHasBorderTexels(true);
818 EXPECT_EQ(3, data.num_tiles_x()); 1004 EXPECT_EQ(3, data.num_tiles_x());
819 EXPECT_EQ(5, data.num_tiles_y()); 1005 EXPECT_EQ(5, data.num_tiles_y());
820 1006
821 data.SetHasBorderTexels(false); 1007 data.SetHasBorderTexels(false);
822 EXPECT_EQ(2, data.num_tiles_x()); 1008 EXPECT_EQ(2, data.num_tiles_x());
823 EXPECT_EQ(4, data.num_tiles_y()); 1009 EXPECT_EQ(4, data.num_tiles_y());
824 } 1010 }
825 1011
826 TEST(TilingDataTest, LargeBorders) { 1012 TEST(TilingDataTest, LargeBorders) {
827 TilingData data(gfx::Size(100, 80), gfx::Size(200, 145), 30); 1013 TilingData data(gfx::Size(100, 80), gfx::Rect(0, 0, 200, 145), 30);
828 EXPECT_EQ(30, data.border_texels()); 1014 EXPECT_EQ(30, data.border_texels());
829 1015
830 EXPECT_EQ(70, data.TileSizeX(0)); 1016 EXPECT_EQ(70, data.TileSizeX(0));
831 EXPECT_EQ(40, data.TileSizeX(1)); 1017 EXPECT_EQ(40, data.TileSizeX(1));
832 EXPECT_EQ(40, data.TileSizeX(2)); 1018 EXPECT_EQ(40, data.TileSizeX(2));
833 EXPECT_EQ(50, data.TileSizeX(3)); 1019 EXPECT_EQ(50, data.TileSizeX(3));
834 EXPECT_EQ(4, data.num_tiles_x()); 1020 EXPECT_EQ(4, data.num_tiles_x());
835 1021
836 EXPECT_EQ(50, data.TileSizeY(0)); 1022 EXPECT_EQ(50, data.TileSizeY(0));
837 EXPECT_EQ(20, data.TileSizeY(1)); 1023 EXPECT_EQ(20, data.TileSizeY(1));
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1021 int expect_top, 1207 int expect_top,
1022 int expect_right, 1208 int expect_right,
1023 int expect_bottom) { 1209 int expect_bottom) {
1024 TestIterateBorders( 1210 TestIterateBorders(
1025 data, rect, expect_left, expect_top, expect_right, expect_bottom); 1211 data, rect, expect_left, expect_top, expect_right, expect_bottom);
1026 TestIterateNoBorders( 1212 TestIterateNoBorders(
1027 data, rect, expect_left, expect_top, expect_right, expect_bottom); 1213 data, rect, expect_left, expect_top, expect_right, expect_bottom);
1028 } 1214 }
1029 1215
1030 TEST(TilingDataTest, IteratorNoBorderTexels) { 1216 TEST(TilingDataTest, IteratorNoBorderTexels) {
1031 TilingData data(gfx::Size(10, 10), gfx::Size(40, 25), false); 1217 TilingData data(gfx::Size(10, 10), gfx::Rect(0, 0, 40, 25), false);
1032 // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40) 1218 // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40)
1033 // Y border index by src coord: [0-10), [10-20), [20, 25) 1219 // Y border index by src coord: [0-10), [10-20), [20, 25)
1034 TestIterateAll(data, gfx::Rect(0, 0, 40, 25), 0, 0, 3, 2); 1220 TestIterateAll(data, gfx::Rect(0, 0, 40, 25), 0, 0, 3, 2);
1035 TestIterateAll(data, gfx::Rect(15, 15, 8, 8), 1, 1, 2, 2); 1221 TestIterateAll(data, gfx::Rect(15, 15, 8, 8), 1, 1, 2, 2);
1036 1222
1037 // Oversized. 1223 // Oversized.
1038 TestIterateAll(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 3, 2); 1224 TestIterateAll(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 3, 2);
1039 TestIterateAll(data, gfx::Rect(-100, 20, 1000, 1), 0, 2, 3, 2); 1225 TestIterateAll(data, gfx::Rect(-100, 20, 1000, 1), 0, 2, 3, 2);
1040 TestIterateAll(data, gfx::Rect(29, -100, 31, 1000), 2, 0, 3, 2); 1226 TestIterateAll(data, gfx::Rect(29, -100, 31, 1000), 2, 0, 3, 2);
1041 // Nonintersecting. 1227 // Nonintersecting.
1042 TestIterateAll(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); 1228 TestIterateAll(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1);
1043 } 1229 }
1044 1230
1045 TEST(TilingDataTest, BordersIteratorOneBorderTexel) { 1231 TEST(TilingDataTest, BordersIteratorOneBorderTexel) {
1046 TilingData data(gfx::Size(10, 20), gfx::Size(25, 45), true); 1232 TilingData data(gfx::Size(10, 20), gfx::Rect(0, 0, 25, 45), true);
1047 // X border index by src coord: [0-10), [8-18), [16-25) 1233 // X border index by src coord: [0-10), [8-18), [16-25)
1048 // Y border index by src coord: [0-20), [18-38), [36-45) 1234 // Y border index by src coord: [0-20), [18-38), [36-45)
1049 TestIterateBorders(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2); 1235 TestIterateBorders(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2);
1050 TestIterateBorders(data, gfx::Rect(18, 19, 3, 17), 2, 0, 2, 1); 1236 TestIterateBorders(data, gfx::Rect(18, 19, 3, 17), 2, 0, 2, 1);
1051 TestIterateBorders(data, gfx::Rect(10, 20, 6, 16), 1, 1, 1, 1); 1237 TestIterateBorders(data, gfx::Rect(10, 20, 6, 16), 1, 1, 1, 1);
1052 TestIterateBorders(data, gfx::Rect(9, 19, 8, 18), 0, 0, 2, 2); 1238 TestIterateBorders(data, gfx::Rect(9, 19, 8, 18), 0, 0, 2, 2);
1053 // Oversized. 1239 // Oversized.
1054 TestIterateBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2); 1240 TestIterateBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2);
1055 TestIterateBorders(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1); 1241 TestIterateBorders(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1);
1056 TestIterateBorders(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2); 1242 TestIterateBorders(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2);
1057 // Nonintersecting. 1243 // Nonintersecting.
1058 TestIterateBorders(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); 1244 TestIterateBorders(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1);
1059 } 1245 }
1060 1246
1061 TEST(TilingDataTest, NoBordersIteratorOneBorderTexel) { 1247 TEST(TilingDataTest, NoBordersIteratorOneBorderTexel) {
1062 TilingData data(gfx::Size(10, 20), gfx::Size(25, 45), true); 1248 TilingData data(gfx::Size(10, 20), gfx::Rect(0, 0, 25, 45), true);
1063 // X index by src coord: [0-9), [9-17), [17-25) 1249 // X index by src coord: [0-9), [9-17), [17-25)
1064 // Y index by src coord: [0-19), [19-37), [37-45) 1250 // Y index by src coord: [0-19), [19-37), [37-45)
1065 TestIterateNoBorders(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2); 1251 TestIterateNoBorders(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2);
1066 TestIterateNoBorders(data, gfx::Rect(17, 19, 3, 18), 2, 1, 2, 1); 1252 TestIterateNoBorders(data, gfx::Rect(17, 19, 3, 18), 2, 1, 2, 1);
1067 TestIterateNoBorders(data, gfx::Rect(17, 19, 3, 19), 2, 1, 2, 2); 1253 TestIterateNoBorders(data, gfx::Rect(17, 19, 3, 19), 2, 1, 2, 2);
1068 TestIterateNoBorders(data, gfx::Rect(8, 18, 9, 19), 0, 0, 1, 1); 1254 TestIterateNoBorders(data, gfx::Rect(8, 18, 9, 19), 0, 0, 1, 1);
1069 TestIterateNoBorders(data, gfx::Rect(9, 19, 9, 19), 1, 1, 2, 2); 1255 TestIterateNoBorders(data, gfx::Rect(9, 19, 9, 19), 1, 1, 2, 2);
1070 // Oversized. 1256 // Oversized.
1071 TestIterateNoBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2); 1257 TestIterateNoBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2);
1072 TestIterateNoBorders(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1); 1258 TestIterateNoBorders(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1);
1073 TestIterateNoBorders(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2); 1259 TestIterateNoBorders(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2);
1074 // Nonintersecting. 1260 // Nonintersecting.
1075 TestIterateNoBorders(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); 1261 TestIterateNoBorders(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1);
1076 } 1262 }
1077 1263
1078 TEST(TilingDataTest, BordersIteratorManyBorderTexels) { 1264 TEST(TilingDataTest, BordersIteratorManyBorderTexels) {
1079 TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); 1265 TilingData data(gfx::Size(50, 60), gfx::Rect(0, 0, 65, 110), 20);
1080 // X border index by src coord: [0-50), [10-60), [20-65) 1266 // X border index by src coord: [0-50), [10-60), [20-65)
1081 // Y border index by src coord: [0-60), [20-80), [40-100), [60-110) 1267 // Y border index by src coord: [0-60), [20-80), [40-100), [60-110)
1082 TestIterateBorders(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3); 1268 TestIterateBorders(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3);
1083 TestIterateBorders(data, gfx::Rect(50, 60, 15, 65), 1, 1, 2, 3); 1269 TestIterateBorders(data, gfx::Rect(50, 60, 15, 65), 1, 1, 2, 3);
1084 TestIterateBorders(data, gfx::Rect(60, 30, 2, 10), 2, 0, 2, 1); 1270 TestIterateBorders(data, gfx::Rect(60, 30, 2, 10), 2, 0, 2, 1);
1085 // Oversized. 1271 // Oversized.
1086 TestIterateBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3); 1272 TestIterateBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3);
1087 TestIterateBorders(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0); 1273 TestIterateBorders(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0);
1088 TestIterateBorders(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 1, 3); 1274 TestIterateBorders(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 1, 3);
1089 // Nonintersecting. 1275 // Nonintersecting.
1090 TestIterateBorders(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1); 1276 TestIterateBorders(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1);
1091 } 1277 }
1092 1278
1093 TEST(TilingDataTest, NoBordersIteratorManyBorderTexels) { 1279 TEST(TilingDataTest, NoBordersIteratorManyBorderTexels) {
1094 TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); 1280 TilingData data(gfx::Size(50, 60), gfx::Rect(0, 0, 65, 110), 20);
1095 // X index by src coord: [0-30), [30-40), [40, 65) 1281 // X index by src coord: [0-30), [30-40), [40, 65)
1096 // Y index by src coord: [0-40), [40-60), [60, 80), [80-110) 1282 // Y index by src coord: [0-40), [40-60), [60, 80), [80-110)
1097 TestIterateNoBorders(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3); 1283 TestIterateNoBorders(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3);
1098 TestIterateNoBorders(data, gfx::Rect(30, 40, 15, 65), 1, 1, 2, 3); 1284 TestIterateNoBorders(data, gfx::Rect(30, 40, 15, 65), 1, 1, 2, 3);
1099 TestIterateNoBorders(data, gfx::Rect(60, 20, 2, 21), 2, 0, 2, 1); 1285 TestIterateNoBorders(data, gfx::Rect(60, 20, 2, 21), 2, 0, 2, 1);
1100 // Oversized. 1286 // Oversized.
1101 TestIterateNoBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3); 1287 TestIterateNoBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3);
1102 TestIterateNoBorders(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0); 1288 TestIterateNoBorders(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0);
1103 TestIterateNoBorders(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 0, 3); 1289 TestIterateNoBorders(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 0, 3);
1104 // Nonintersecting. 1290 // Nonintersecting.
1105 TestIterateNoBorders(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1); 1291 TestIterateNoBorders(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1);
1106 } 1292 }
1107 1293
1108 TEST(TilingDataTest, IteratorOneTile) { 1294 TEST(TilingDataTest, IteratorOneTile) {
1109 TilingData no_border(gfx::Size(1000, 1000), gfx::Size(30, 40), false); 1295 TilingData no_border(gfx::Size(1000, 1000), gfx::Rect(0, 0, 30, 40), false);
1110 TestIterateAll(no_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); 1296 TestIterateAll(no_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0);
1111 TestIterateAll(no_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); 1297 TestIterateAll(no_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0);
1112 TestIterateAll(no_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); 1298 TestIterateAll(no_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1);
1113 1299
1114 TilingData one_border(gfx::Size(1000, 1000), gfx::Size(30, 40), true); 1300 TilingData one_border(gfx::Size(1000, 1000), gfx::Rect(0, 0, 30, 40), true);
1115 TestIterateAll(one_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); 1301 TestIterateAll(one_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0);
1116 TestIterateAll(one_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); 1302 TestIterateAll(one_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0);
1117 TestIterateAll(one_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); 1303 TestIterateAll(one_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1);
1118 1304
1119 TilingData big_border(gfx::Size(1000, 1000), gfx::Size(30, 40), 50); 1305 TilingData big_border(gfx::Size(1000, 1000), gfx::Rect(0, 0, 30, 40), 50);
1120 TestIterateAll(big_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); 1306 TestIterateAll(big_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0);
1121 TestIterateAll(big_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); 1307 TestIterateAll(big_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0);
1122 TestIterateAll(big_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); 1308 TestIterateAll(big_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1);
1123 } 1309 }
1124 1310
1125 TEST(TilingDataTest, IteratorNoTiles) { 1311 TEST(TilingDataTest, IteratorNoTiles) {
1126 TilingData data(gfx::Size(100, 100), gfx::Size(), false); 1312 TilingData data(gfx::Size(100, 100), gfx::Rect(), false);
1127 TestIterateAll(data, gfx::Rect(0, 0, 100, 100), 0, 0, -1, -1); 1313 TestIterateAll(data, gfx::Rect(0, 0, 100, 100), 0, 0, -1, -1);
1128 } 1314 }
1129 1315
1130 void TestDiff( 1316 void TestDiff(
1131 const TilingData& data, 1317 const TilingData& data,
1132 gfx::Rect consider, 1318 gfx::Rect consider,
1133 gfx::Rect ignore, 1319 gfx::Rect ignore,
1134 size_t num_tiles) { 1320 size_t num_tiles) {
1135 1321
1136 std::vector<std::pair<int, int> > expected; 1322 std::vector<std::pair<int, int> > expected;
(...skipping 25 matching lines...) Expand all
1162 } 1348 }
1163 1349
1164 TEST(TilingDataTest, DifferenceIteratorIgnoreGeometry) { 1350 TEST(TilingDataTest, DifferenceIteratorIgnoreGeometry) {
1165 // This test is checking that the iterator can handle different geometries of 1351 // This test is checking that the iterator can handle different geometries of
1166 // ignore rects relative to the consider rect. The consider rect indices 1352 // ignore rects relative to the consider rect. The consider rect indices
1167 // themselves are mostly tested by the non-difference iterator tests, so the 1353 // themselves are mostly tested by the non-difference iterator tests, so the
1168 // full rect is mostly used here for simplicity. 1354 // full rect is mostly used here for simplicity.
1169 1355
1170 // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40) 1356 // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40)
1171 // Y border index by src coord: [0-10), [10-20), [20, 25) 1357 // Y border index by src coord: [0-10), [10-20), [20, 25)
1172 TilingData data(gfx::Size(10, 10), gfx::Size(40, 25), false); 1358 TilingData data(gfx::Size(10, 10), gfx::Rect(0, 0, 40, 25), false);
1173 1359
1174 // Fully ignored 1360 // Fully ignored
1175 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 0, 40, 25), 0); 1361 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 0, 40, 25), 0);
1176 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(-100, -100, 200, 200), 0); 1362 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(-100, -100, 200, 200), 0);
1177 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(9, 9, 30, 15), 0); 1363 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(9, 9, 30, 15), 0);
1178 TestDiff(data, gfx::Rect(15, 15, 8, 8), gfx::Rect(15, 15, 8, 8), 0); 1364 TestDiff(data, gfx::Rect(15, 15, 8, 8), gfx::Rect(15, 15, 8, 8), 0);
1179 1365
1180 // Fully un-ignored 1366 // Fully un-ignored
1181 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(-30, -20, 8, 8), 12); 1367 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(-30, -20, 8, 8), 12);
1182 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(), 12); 1368 TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(), 12);
(...skipping 26 matching lines...) Expand all
1209 // Non-intersecting, but still touching two of the same tiles. 1395 // Non-intersecting, but still touching two of the same tiles.
1210 TestDiff(data, gfx::Rect(8, 0, 32, 25), gfx::Rect(0, 12, 5, 12), 10); 1396 TestDiff(data, gfx::Rect(8, 0, 32, 25), gfx::Rect(0, 12, 5, 12), 10);
1211 1397
1212 // Intersecting, but neither contains the other. 2x3 with one overlap. 1398 // Intersecting, but neither contains the other. 2x3 with one overlap.
1213 TestDiff(data, gfx::Rect(5, 2, 20, 10), gfx::Rect(25, 15, 5, 10), 5); 1399 TestDiff(data, gfx::Rect(5, 2, 20, 10), gfx::Rect(25, 15, 5, 10), 5);
1214 } 1400 }
1215 1401
1216 TEST(TilingDataTest, DifferenceIteratorManyBorderTexels) { 1402 TEST(TilingDataTest, DifferenceIteratorManyBorderTexels) {
1217 // X border index by src coord: [0-50), [10-60), [20-65) 1403 // X border index by src coord: [0-50), [10-60), [20-65)
1218 // Y border index by src coord: [0-60), [20-80), [40-100), [60-110) 1404 // Y border index by src coord: [0-60), [20-80), [40-100), [60-110)
1219 TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); 1405 TilingData data(gfx::Size(50, 60), gfx::Rect(0, 0, 65, 110), 20);
1220 1406
1221 // Ignore one column, three rows 1407 // Ignore one column, three rows
1222 TestDiff(data, gfx::Rect(0, 30, 55, 80), gfx::Rect(5, 30, 5, 15), 9); 1408 TestDiff(data, gfx::Rect(0, 30, 55, 80), gfx::Rect(5, 30, 5, 15), 9);
1223 1409
1224 // Knock out three columns, leaving only one. 1410 // Knock out three columns, leaving only one.
1225 TestDiff(data, gfx::Rect(10, 30, 55, 80), gfx::Rect(30, 59, 20, 1), 3); 1411 TestDiff(data, gfx::Rect(10, 30, 55, 80), gfx::Rect(30, 59, 20, 1), 3);
1226 1412
1227 // Overlap all tiles with ignore rect. 1413 // Overlap all tiles with ignore rect.
1228 TestDiff(data, gfx::Rect(0, 0, 65, 110), gfx::Rect(30, 59, 1, 2), 0); 1414 TestDiff(data, gfx::Rect(0, 0, 65, 110), gfx::Rect(30, 59, 1, 2), 0);
1229 } 1415 }
1230 1416
1231 TEST(TilingDataTest, DifferenceIteratorOneTile) { 1417 TEST(TilingDataTest, DifferenceIteratorOneTile) {
1232 TilingData no_border(gfx::Size(1000, 1000), gfx::Size(30, 40), false); 1418 TilingData no_border(gfx::Size(1000, 1000), gfx::Rect(0, 0, 30, 40), false);
1233 TestDiff(no_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1); 1419 TestDiff(no_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1);
1234 TestDiff(no_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); 1420 TestDiff(no_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0);
1235 1421
1236 TilingData one_border(gfx::Size(1000, 1000), gfx::Size(30, 40), true); 1422 TilingData one_border(gfx::Size(1000, 1000), gfx::Rect(0, 0, 30, 40), true);
1237 TestDiff(one_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1); 1423 TestDiff(one_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1);
1238 TestDiff(one_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); 1424 TestDiff(one_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0);
1239 1425
1240 TilingData big_border(gfx::Size(1000, 1000), gfx::Size(30, 40), 50); 1426 TilingData big_border(gfx::Size(1000, 1000), gfx::Rect(0, 0, 30, 40), 50);
1241 TestDiff(big_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1); 1427 TestDiff(big_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1);
1242 TestDiff(big_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); 1428 TestDiff(big_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0);
1243 } 1429 }
1244 1430
1245 TEST(TilingDataTest, DifferenceIteratorNoTiles) { 1431 TEST(TilingDataTest, DifferenceIteratorNoTiles) {
1246 TilingData data(gfx::Size(100, 100), gfx::Size(), false); 1432 TilingData data(gfx::Size(100, 100), gfx::Rect(), false);
1247 TestDiff(data, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 5, 5), 0); 1433 TestDiff(data, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 5, 5), 0);
1248 } 1434 }
1249 1435
1250 void TestSpiralIterate(int source_line_number, 1436 void TestSpiralIterate(int source_line_number,
1251 const TilingData& tiling_data, 1437 const TilingData& tiling_data,
1252 const gfx::Rect& consider, 1438 const gfx::Rect& consider,
1253 const gfx::Rect& ignore, 1439 const gfx::Rect& ignore,
1254 const gfx::Rect& center, 1440 const gfx::Rect& center,
1255 const std::vector<std::pair<int, int> >& expected) { 1441 const std::vector<std::pair<int, int> >& expected) {
1256 std::vector<std::pair<int, int> > actual; 1442 std::vector<std::pair<int, int> > actual;
1257 for (TilingData::SpiralDifferenceIterator it( 1443 for (TilingData::SpiralDifferenceIterator it(
1258 &tiling_data, consider, ignore, center); 1444 &tiling_data, consider, ignore, center);
1259 it; 1445 it;
1260 ++it) { 1446 ++it) {
1261 actual.push_back(it.index()); 1447 actual.push_back(it.index());
1262 } 1448 }
1263 1449
1264 EXPECT_EQ(expected.size(), actual.size()) << "error from line " 1450 EXPECT_EQ(expected.size(), actual.size()) << "error from line "
1265 << source_line_number; 1451 << source_line_number;
1266 for (size_t i = 0; i < std::min(expected.size(), actual.size()); ++i) { 1452 for (size_t i = 0; i < std::min(expected.size(), actual.size()); ++i) {
1267 EXPECT_EQ(expected[i].first, actual[i].first) 1453 EXPECT_EQ(expected[i].first, actual[i].first)
1268 << "i: " << i << " error from line: " << source_line_number; 1454 << "i: " << i << " error from line: " << source_line_number;
1269 EXPECT_EQ(expected[i].second, actual[i].second) 1455 EXPECT_EQ(expected[i].second, actual[i].second)
1270 << "i: " << i << " error from line: " << source_line_number; 1456 << "i: " << i << " error from line: " << source_line_number;
1271 } 1457 }
1272 } 1458 }
1273 1459
1274 TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { 1460 TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) {
1275 TilingData tiling_data(gfx::Size(10, 10), gfx::Size(30, 30), false); 1461 TilingData tiling_data(gfx::Size(10, 10), gfx::Rect(0, 0, 30, 30), false);
1276 gfx::Rect consider(0, 0, 30, 30); 1462 gfx::Rect consider(0, 0, 30, 30);
1277 gfx::Rect ignore; 1463 gfx::Rect ignore;
1278 std::vector<std::pair<int, int> > expected; 1464 std::vector<std::pair<int, int> > expected;
1279 1465
1280 // Center is in the center of the tiling. 1466 // Center is in the center of the tiling.
1281 gfx::Rect center(15, 15, 1, 1); 1467 gfx::Rect center(15, 15, 1, 1);
1282 1468
1283 // Layout of the tiling data, and expected return order: 1469 // Layout of the tiling data, and expected return order:
1284 // x 0 1 2 1470 // x 0 1 2
1285 // y.------ 1471 // y.------
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1377 expected.push_back(std::make_pair(2, 0)); 1563 expected.push_back(std::make_pair(2, 0));
1378 expected.push_back(std::make_pair(1, 0)); 1564 expected.push_back(std::make_pair(1, 0));
1379 expected.push_back(std::make_pair(0, 0)); 1565 expected.push_back(std::make_pair(0, 0));
1380 expected.push_back(std::make_pair(0, 1)); 1566 expected.push_back(std::make_pair(0, 1));
1381 expected.push_back(std::make_pair(0, 2)); 1567 expected.push_back(std::make_pair(0, 2));
1382 1568
1383 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); 1569 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected);
1384 } 1570 }
1385 1571
1386 TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { 1572 TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) {
1387 TilingData tiling_data(gfx::Size(10, 10), gfx::Size(50, 50), false); 1573 TilingData tiling_data(gfx::Size(10, 10), gfx::Rect(0, 0, 50, 50), false);
1388 gfx::Rect ignore; 1574 gfx::Rect ignore;
1389 std::vector<std::pair<int, int> > expected; 1575 std::vector<std::pair<int, int> > expected;
1390 gfx::Rect center(15, 15, 1, 1); 1576 gfx::Rect center(15, 15, 1, 1);
1391 1577
1392 // Consider is one cell. 1578 // Consider is one cell.
1393 gfx::Rect consider(0, 0, 1, 1); 1579 gfx::Rect consider(0, 0, 1, 1);
1394 1580
1395 // Layout of the tiling data, and expected return order: 1581 // Layout of the tiling data, and expected return order:
1396 // x 0 1 2 3 4 1582 // x 0 1 2 3 4
1397 // y.---------- 1583 // y.----------
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1437 expected.clear(); 1623 expected.clear();
1438 expected.push_back(std::make_pair(1, 0)); 1624 expected.push_back(std::make_pair(1, 0));
1439 expected.push_back(std::make_pair(1, 2)); 1625 expected.push_back(std::make_pair(1, 2));
1440 expected.push_back(std::make_pair(1, 3)); 1626 expected.push_back(std::make_pair(1, 3));
1441 expected.push_back(std::make_pair(1, 4)); 1627 expected.push_back(std::make_pair(1, 4));
1442 1628
1443 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); 1629 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected);
1444 } 1630 }
1445 1631
1446 TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { 1632 TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) {
1447 TilingData tiling_data(gfx::Size(10, 10), gfx::Size(50, 50), false); 1633 TilingData tiling_data(gfx::Size(10, 10), gfx::Rect(0, 0, 50, 50), false);
1448 gfx::Rect consider(0, 0, 50, 50); 1634 gfx::Rect consider(0, 0, 50, 50);
1449 std::vector<std::pair<int, int> > expected; 1635 std::vector<std::pair<int, int> > expected;
1450 gfx::Rect center(15, 15, 1, 1); 1636 gfx::Rect center(15, 15, 1, 1);
1451 1637
1452 // Full ignore. 1638 // Full ignore.
1453 gfx::Rect ignore(0, 0, 50, 50); 1639 gfx::Rect ignore(0, 0, 50, 50);
1454 1640
1455 // Layout of the tiling data, and expected return order: 1641 // Layout of the tiling data, and expected return order:
1456 // x 0 1 2 3 4 1642 // x 0 1 2 3 4
1457 // y.---------- 1643 // y.----------
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1511 expected.push_back(std::make_pair(0, 4)); 1697 expected.push_back(std::make_pair(0, 4));
1512 expected.push_back(std::make_pair(1, 4)); 1698 expected.push_back(std::make_pair(1, 4));
1513 expected.push_back(std::make_pair(2, 4)); 1699 expected.push_back(std::make_pair(2, 4));
1514 expected.push_back(std::make_pair(3, 4)); 1700 expected.push_back(std::make_pair(3, 4));
1515 expected.push_back(std::make_pair(4, 4)); 1701 expected.push_back(std::make_pair(4, 4));
1516 1702
1517 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); 1703 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected);
1518 } 1704 }
1519 1705
1520 TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { 1706 TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) {
1521 TilingData tiling_data(gfx::Size(10, 10), gfx::Size(50, 50), false); 1707 TilingData tiling_data(gfx::Size(10, 10), gfx::Rect(0, 0, 50, 50), false);
1522 gfx::Rect consider(0, 0, 50, 50); 1708 gfx::Rect consider(0, 0, 50, 50);
1523 std::vector<std::pair<int, int> > expected; 1709 std::vector<std::pair<int, int> > expected;
1524 gfx::Rect ignore; 1710 gfx::Rect ignore;
1525 1711
1526 // Two cell center 1712 // Two cell center
1527 gfx::Rect center(25, 25, 1, 10); 1713 gfx::Rect center(25, 25, 1, 10);
1528 1714
1529 // Layout of the tiling data, and expected return order: 1715 // Layout of the tiling data, and expected return order:
1530 // x 0 1 2 3 4 1716 // x 0 1 2 3 4
1531 // y.---------- 1717 // y.----------
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1633 expected.push_back(std::make_pair(4, 4)); 1819 expected.push_back(std::make_pair(4, 4));
1634 expected.push_back(std::make_pair(4, 3)); 1820 expected.push_back(std::make_pair(4, 3));
1635 expected.push_back(std::make_pair(4, 2)); 1821 expected.push_back(std::make_pair(4, 2));
1636 expected.push_back(std::make_pair(4, 1)); 1822 expected.push_back(std::make_pair(4, 1));
1637 expected.push_back(std::make_pair(4, 0)); 1823 expected.push_back(std::make_pair(4, 0));
1638 1824
1639 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); 1825 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected);
1640 } 1826 }
1641 1827
1642 TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { 1828 TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) {
1643 TilingData tiling_data(gfx::Size(10, 10), gfx::Size(30, 30), false); 1829 TilingData tiling_data(gfx::Size(10, 10), gfx::Rect(0, 0, 30, 30), false);
1644 std::vector<std::pair<int, int> > expected; 1830 std::vector<std::pair<int, int> > expected;
1645 gfx::Rect center; 1831 gfx::Rect center;
1646 gfx::Rect consider; 1832 gfx::Rect consider;
1647 gfx::Rect ignore; 1833 gfx::Rect ignore;
1648 1834
1649 // Ignore contains, but is not equal to, consider and center. 1835 // Ignore contains, but is not equal to, consider and center.
1650 ignore = gfx::Rect(15, 0, 20, 30); 1836 ignore = gfx::Rect(15, 0, 20, 30);
1651 consider = gfx::Rect(20, 10, 10, 20); 1837 consider = gfx::Rect(20, 10, 10, 20);
1652 center = gfx::Rect(25, 0, 5, 5); 1838 center = gfx::Rect(25, 0, 5, 5);
1653 1839
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1734 expected.push_back(std::make_pair(2, 2)); 1920 expected.push_back(std::make_pair(2, 2));
1735 expected.push_back(std::make_pair(2, 1)); 1921 expected.push_back(std::make_pair(2, 1));
1736 expected.push_back(std::make_pair(2, 0)); 1922 expected.push_back(std::make_pair(2, 0));
1737 expected.push_back(std::make_pair(0, 0)); 1923 expected.push_back(std::make_pair(0, 0));
1738 expected.push_back(std::make_pair(0, 1)); 1924 expected.push_back(std::make_pair(0, 1));
1739 expected.push_back(std::make_pair(0, 2)); 1925 expected.push_back(std::make_pair(0, 2));
1740 1926
1741 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); 1927 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected);
1742 1928
1743 // Empty tiling data. 1929 // Empty tiling data.
1744 TilingData empty_data(gfx::Size(0, 0), gfx::Size(0, 0), false); 1930 TilingData empty_data(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 0), false);
1745 1931
1746 expected.clear(); 1932 expected.clear();
1747 TestSpiralIterate(__LINE__, empty_data, consider, ignore, center, expected); 1933 TestSpiralIterate(__LINE__, empty_data, consider, ignore, center, expected);
1748 1934
1749 // Empty consider. 1935 // Empty consider.
1750 ignore = gfx::Rect(); 1936 ignore = gfx::Rect();
1751 center = gfx::Rect(1, 1, 1, 1); 1937 center = gfx::Rect(1, 1, 1, 1);
1752 consider = gfx::Rect(); 1938 consider = gfx::Rect();
1753 1939
1754 expected.clear(); 1940 expected.clear();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
1809 expected.push_back(std::make_pair(1, 0)); 1995 expected.push_back(std::make_pair(1, 0));
1810 expected.push_back(std::make_pair(2, 2)); 1996 expected.push_back(std::make_pair(2, 2));
1811 expected.push_back(std::make_pair(2, 1)); 1997 expected.push_back(std::make_pair(2, 1));
1812 expected.push_back(std::make_pair(2, 0)); 1998 expected.push_back(std::make_pair(2, 0));
1813 1999
1814 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); 2000 TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected);
1815 } 2001 }
1816 } // namespace 2002 } // namespace
1817 2003
1818 } // namespace cc 2004 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698