2 * Copyright (C) 2010 Google Inc. All rights reserved.
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above
11 * copyright notice, this list of conditions and the following disclaimer
12 * in the documentation and/or other materials provided with the
14 * * Neither the name of Google Inc. nor the names of its
15 * contributors may be used to endorse or promote products derived from
16 * this software without specific prior written permission.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 #include "TilingData.h"
35 #include <gtest/gtest.h>
37 using namespace WebCore;
41 TEST(TilingDataTest, numTiles_NoTiling)
43 EXPECT_EQ(1, TilingData(16, 16, 16, false).numTiles());
44 EXPECT_EQ(1, TilingData(16, 15, 15, true).numTiles());
45 EXPECT_EQ(1, TilingData(16, 16, 16, true).numTiles());
46 EXPECT_EQ(1, TilingData(16, 1, 16, false).numTiles());
47 EXPECT_EQ(1, TilingData(15, 15, 15, true).numTiles());
50 TEST(TilingDataTest, numTiles_TilingNoBorders)
52 EXPECT_EQ(0, TilingData(0, 0, 0, false).numTiles());
53 EXPECT_EQ(0, TilingData(0, 4, 0, false).numTiles());
54 EXPECT_EQ(0, TilingData(0, 0, 4, false).numTiles());
55 EXPECT_EQ(0, TilingData(4, 4, 0, false).numTiles());
56 EXPECT_EQ(0, TilingData(4, 0, 4, false).numTiles());
57 EXPECT_EQ(0, TilingData(-8, 1, 1, false).numTiles());
58 EXPECT_EQ(0, TilingData(-1, 1, 1, false).numTiles());
59 EXPECT_EQ(0, TilingData(0, 1, 1, false).numTiles());
61 EXPECT_EQ(1, TilingData(1, 1, 1, false).numTiles());
62 EXPECT_EQ(2, TilingData(1, 1, 2, false).numTiles());
63 EXPECT_EQ(2, TilingData(1, 2, 1, false).numTiles());
64 EXPECT_EQ(1, TilingData(2, 1, 1, false).numTiles());
65 EXPECT_EQ(1, TilingData(2, 1, 2, false).numTiles());
66 EXPECT_EQ(1, TilingData(2, 2, 1, false).numTiles());
67 EXPECT_EQ(1, TilingData(2, 2, 2, false).numTiles());
68 EXPECT_EQ(1, TilingData(3, 3, 3, false).numTiles());
70 EXPECT_EQ(1, TilingData(4, 1, 4, false).numTiles());
71 EXPECT_EQ(1, TilingData(4, 2, 4, false).numTiles());
72 EXPECT_EQ(1, TilingData(4, 3, 4, false).numTiles());
73 EXPECT_EQ(1, TilingData(4, 4, 4, false).numTiles());
74 EXPECT_EQ(2, TilingData(4, 5, 4, false).numTiles());
75 EXPECT_EQ(2, TilingData(4, 6, 4, false).numTiles());
76 EXPECT_EQ(2, TilingData(4, 7, 4, false).numTiles());
77 EXPECT_EQ(2, TilingData(4, 8, 4, false).numTiles());
78 EXPECT_EQ(3, TilingData(4, 9, 4, false).numTiles());
79 EXPECT_EQ(3, TilingData(4, 10, 4, false).numTiles());
80 EXPECT_EQ(3, TilingData(4, 11, 4, false).numTiles());
82 EXPECT_EQ(1, TilingData(5, 1, 5, false).numTiles());
83 EXPECT_EQ(1, TilingData(5, 2, 5, false).numTiles());
84 EXPECT_EQ(1, TilingData(5, 3, 5, false).numTiles());
85 EXPECT_EQ(1, TilingData(5, 4, 5, false).numTiles());
86 EXPECT_EQ(1, TilingData(5, 5, 5, false).numTiles());
87 EXPECT_EQ(2, TilingData(5, 6, 5, false).numTiles());
88 EXPECT_EQ(2, TilingData(5, 7, 5, false).numTiles());
89 EXPECT_EQ(2, TilingData(5, 8, 5, false).numTiles());
90 EXPECT_EQ(2, TilingData(5, 9, 5, false).numTiles());
91 EXPECT_EQ(2, TilingData(5, 10, 5, false).numTiles());
92 EXPECT_EQ(3, TilingData(5, 11, 5, false).numTiles());
94 EXPECT_EQ(1, TilingData(16, 16, 16, false).numTiles());
95 EXPECT_EQ(1, TilingData(17, 16, 16, false).numTiles());
96 EXPECT_EQ(4, TilingData(15, 16, 16, false).numTiles());
97 EXPECT_EQ(4, TilingData(8, 16, 16, false).numTiles());
98 EXPECT_EQ(6, TilingData(8, 17, 16, false).numTiles());
101 TEST(TilingDataTest, numTiles_TilingWithBorders)
103 EXPECT_EQ(0, TilingData(0, 0, 0, true).numTiles());
104 EXPECT_EQ(0, TilingData(0, 4, 0, true).numTiles());
105 EXPECT_EQ(0, TilingData(0, 0, 4, true).numTiles());
106 EXPECT_EQ(0, TilingData(4, 4, 0, true).numTiles());
107 EXPECT_EQ(0, TilingData(4, 0, 4, true).numTiles());
108 EXPECT_EQ(0, TilingData(-8, 1, 1, true).numTiles());
109 EXPECT_EQ(0, TilingData(-1, 1, 1, true).numTiles());
110 EXPECT_EQ(0, TilingData(0, 1, 1, true).numTiles());
112 EXPECT_EQ(1, TilingData(1, 1, 1, true).numTiles());
113 EXPECT_EQ(0, TilingData(1, 1, 2, true).numTiles());
114 EXPECT_EQ(0, TilingData(1, 2, 1, true).numTiles());
115 EXPECT_EQ(1, TilingData(2, 1, 1, true).numTiles());
116 EXPECT_EQ(1, TilingData(2, 1, 2, true).numTiles());
117 EXPECT_EQ(1, TilingData(2, 2, 1, true).numTiles());
118 EXPECT_EQ(1, TilingData(2, 2, 2, true).numTiles());
120 EXPECT_EQ(1, TilingData(3, 1, 3, true).numTiles());
121 EXPECT_EQ(1, TilingData(3, 2, 3, true).numTiles());
122 EXPECT_EQ(1, TilingData(3, 3, 3, true).numTiles());
123 EXPECT_EQ(2, TilingData(3, 4, 3, true).numTiles());
124 EXPECT_EQ(3, TilingData(3, 5, 3, true).numTiles());
125 EXPECT_EQ(4, TilingData(3, 6, 3, true).numTiles());
126 EXPECT_EQ(5, TilingData(3, 7, 3, true).numTiles());
128 EXPECT_EQ(1, TilingData(4, 1, 4, true).numTiles());
129 EXPECT_EQ(1, TilingData(4, 2, 4, true).numTiles());
130 EXPECT_EQ(1, TilingData(4, 3, 4, true).numTiles());
131 EXPECT_EQ(1, TilingData(4, 4, 4, true).numTiles());
132 EXPECT_EQ(2, TilingData(4, 5, 4, true).numTiles());
133 EXPECT_EQ(2, TilingData(4, 6, 4, true).numTiles());
134 EXPECT_EQ(3, TilingData(4, 7, 4, true).numTiles());
135 EXPECT_EQ(3, TilingData(4, 8, 4, true).numTiles());
136 EXPECT_EQ(4, TilingData(4, 9, 4, true).numTiles());
137 EXPECT_EQ(4, TilingData(4, 10, 4, true).numTiles());
138 EXPECT_EQ(5, TilingData(4, 11, 4, true).numTiles());
140 EXPECT_EQ(1, TilingData(5, 1, 5, true).numTiles());
141 EXPECT_EQ(1, TilingData(5, 2, 5, true).numTiles());
142 EXPECT_EQ(1, TilingData(5, 3, 5, true).numTiles());
143 EXPECT_EQ(1, TilingData(5, 4, 5, true).numTiles());
144 EXPECT_EQ(1, TilingData(5, 5, 5, true).numTiles());
145 EXPECT_EQ(2, TilingData(5, 6, 5, true).numTiles());
146 EXPECT_EQ(2, TilingData(5, 7, 5, true).numTiles());
147 EXPECT_EQ(2, TilingData(5, 8, 5, true).numTiles());
148 EXPECT_EQ(3, TilingData(5, 9, 5, true).numTiles());
149 EXPECT_EQ(3, TilingData(5, 10, 5, true).numTiles());
150 EXPECT_EQ(3, TilingData(5, 11, 5, true).numTiles());
153 TEST(TilingDataTest, tileXIndexFromSrcCoord)
155 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(0));
156 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(1));
157 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(2));
158 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(3));
159 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(4));
160 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(5));
161 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(6));
162 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(7));
163 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(8));
164 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(9));
165 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(10));
166 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileXIndexFromSrcCoord(11));
168 EXPECT_EQ(0, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(0));
169 EXPECT_EQ(0, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(1));
170 EXPECT_EQ(1, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(2));
171 EXPECT_EQ(2, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(3));
172 EXPECT_EQ(3, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(4));
173 EXPECT_EQ(4, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(5));
174 EXPECT_EQ(5, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(6));
175 EXPECT_EQ(6, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(7));
176 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(8));
177 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(9));
178 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(10));
179 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileXIndexFromSrcCoord(11));
181 EXPECT_EQ(0, TilingData(1, 1, 1, false).tileXIndexFromSrcCoord(0));
182 EXPECT_EQ(0, TilingData(2, 2, 2, false).tileXIndexFromSrcCoord(0));
183 EXPECT_EQ(0, TilingData(2, 2, 2, false).tileXIndexFromSrcCoord(1));
184 EXPECT_EQ(0, TilingData(3, 3, 3, false).tileXIndexFromSrcCoord(0));
185 EXPECT_EQ(0, TilingData(3, 3, 3, false).tileXIndexFromSrcCoord(1));
186 EXPECT_EQ(0, TilingData(3, 3, 3, false).tileXIndexFromSrcCoord(2));
188 EXPECT_EQ(0, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(0));
189 EXPECT_EQ(0, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(1));
190 EXPECT_EQ(0, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(2));
191 EXPECT_EQ(1, TilingData(3, 4, 3, false).tileXIndexFromSrcCoord(3));
193 EXPECT_EQ(0, TilingData(1, 1, 1, true).tileXIndexFromSrcCoord(0));
194 EXPECT_EQ(0, TilingData(2, 2, 2, true).tileXIndexFromSrcCoord(0));
195 EXPECT_EQ(0, TilingData(2, 2, 2, true).tileXIndexFromSrcCoord(1));
196 EXPECT_EQ(0, TilingData(3, 3, 3, true).tileXIndexFromSrcCoord(0));
197 EXPECT_EQ(0, TilingData(3, 3, 3, true).tileXIndexFromSrcCoord(1));
198 EXPECT_EQ(0, TilingData(3, 3, 3, true).tileXIndexFromSrcCoord(2));
200 EXPECT_EQ(0, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(0));
201 EXPECT_EQ(0, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(1));
202 EXPECT_EQ(1, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(2));
203 EXPECT_EQ(1, TilingData(3, 4, 3, true).tileXIndexFromSrcCoord(3));
205 TEST(TilingDataTest, tileYIndexFromSrcCoord)
207 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(0));
208 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(1));
209 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(2));
210 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(3));
211 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(4));
212 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(5));
213 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(6));
214 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(7));
215 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(8));
216 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(9));
217 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(10));
218 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(11));
220 EXPECT_EQ(0, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(0));
221 EXPECT_EQ(0, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(1));
222 EXPECT_EQ(1, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(2));
223 EXPECT_EQ(2, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(3));
224 EXPECT_EQ(3, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(4));
225 EXPECT_EQ(4, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(5));
226 EXPECT_EQ(5, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(6));
227 EXPECT_EQ(6, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(7));
228 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(8));
229 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(9));
230 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(10));
231 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(11));
233 EXPECT_EQ(0, TilingData(1, 1, 1, false).tileYIndexFromSrcCoord(0));
234 EXPECT_EQ(0, TilingData(2, 2, 2, false).tileYIndexFromSrcCoord(0));
235 EXPECT_EQ(0, TilingData(2, 2, 2, false).tileYIndexFromSrcCoord(1));
236 EXPECT_EQ(0, TilingData(3, 3, 3, false).tileYIndexFromSrcCoord(0));
237 EXPECT_EQ(0, TilingData(3, 3, 3, false).tileYIndexFromSrcCoord(1));
238 EXPECT_EQ(0, TilingData(3, 3, 3, false).tileYIndexFromSrcCoord(2));
240 EXPECT_EQ(0, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(0));
241 EXPECT_EQ(0, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(1));
242 EXPECT_EQ(0, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(2));
243 EXPECT_EQ(1, TilingData(3, 3, 4, false).tileYIndexFromSrcCoord(3));
245 EXPECT_EQ(0, TilingData(1, 1, 1, true).tileYIndexFromSrcCoord(0));
246 EXPECT_EQ(0, TilingData(2, 2, 2, true).tileYIndexFromSrcCoord(0));
247 EXPECT_EQ(0, TilingData(2, 2, 2, true).tileYIndexFromSrcCoord(1));
248 EXPECT_EQ(0, TilingData(3, 3, 3, true).tileYIndexFromSrcCoord(0));
249 EXPECT_EQ(0, TilingData(3, 3, 3, true).tileYIndexFromSrcCoord(1));
250 EXPECT_EQ(0, TilingData(3, 3, 3, true).tileYIndexFromSrcCoord(2));
252 EXPECT_EQ(0, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(0));
253 EXPECT_EQ(0, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(1));
254 EXPECT_EQ(1, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(2));
255 EXPECT_EQ(1, TilingData(3, 3, 4, true).tileYIndexFromSrcCoord(3));
258 TEST(TilingDataTest, tileSizeX)
260 EXPECT_EQ(5, TilingData(5, 5, 5, false).tileSizeX(0));
261 EXPECT_EQ(5, TilingData(5, 5, 5, true).tileSizeX(0));
263 EXPECT_EQ(5, TilingData(5, 6, 6, false).tileSizeX(0));
264 EXPECT_EQ(1, TilingData(5, 6, 6, false).tileSizeX(1));
265 EXPECT_EQ(4, TilingData(5, 6, 6, true).tileSizeX(0));
266 EXPECT_EQ(2, TilingData(5, 6, 6, true).tileSizeX(1));
268 EXPECT_EQ(5, TilingData(5, 8, 8, false).tileSizeX(0));
269 EXPECT_EQ(3, TilingData(5, 8, 8, false).tileSizeX(1));
270 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeX(0));
271 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeX(1));
273 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeX(0));
274 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeX(1));
275 EXPECT_EQ(4, TilingData(5, 10, 10, true).tileSizeX(0));
276 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeX(1));
277 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeX(2));
279 EXPECT_EQ(4, TilingData(5, 11, 11, true).tileSizeX(2));
280 EXPECT_EQ(3, TilingData(5, 12, 12, true).tileSizeX(2));
282 TEST(TilingDataTest, tileSizeY)
284 EXPECT_EQ(5, TilingData(5, 5, 5, false).tileSizeY(0));
285 EXPECT_EQ(5, TilingData(5, 5, 5, true).tileSizeY(0));
287 EXPECT_EQ(5, TilingData(5, 6, 6, false).tileSizeY(0));
288 EXPECT_EQ(1, TilingData(5, 6, 6, false).tileSizeY(1));
289 EXPECT_EQ(4, TilingData(5, 6, 6, true).tileSizeY(0));
290 EXPECT_EQ(2, TilingData(5, 6, 6, true).tileSizeY(1));
292 EXPECT_EQ(5, TilingData(5, 8, 8, false).tileSizeY(0));
293 EXPECT_EQ(3, TilingData(5, 8, 8, false).tileSizeY(1));
294 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeY(0));
295 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeY(1));
297 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeY(0));
298 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeY(1));
299 EXPECT_EQ(4, TilingData(5, 10, 10, true).tileSizeY(0));
300 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeY(1));
301 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeY(2));
303 EXPECT_EQ(4, TilingData(5, 11, 11, true).tileSizeY(2));
304 EXPECT_EQ(3, TilingData(5, 12, 12, true).tileSizeY(2));
307 TEST(TilingDataTest, tileSizeX_and_tilePositionX)
309 // Single tile cases:
310 EXPECT_EQ(1, TilingData(3, 1, 1, false).tileSizeX(0));
311 EXPECT_EQ(0, TilingData(3, 1, 1, false).tilePositionX(0));
312 EXPECT_EQ(1, TilingData(3, 1, 100, false).tileSizeX(0));
313 EXPECT_EQ(0, TilingData(3, 1, 100, false).tilePositionX(0));
314 EXPECT_EQ(3, TilingData(3, 3, 1, false).tileSizeX(0));
315 EXPECT_EQ(0, TilingData(3, 3, 1, false).tilePositionX(0));
316 EXPECT_EQ(3, TilingData(3, 3, 100, false).tileSizeX(0));
317 EXPECT_EQ(0, TilingData(3, 3, 100, false).tilePositionX(0));
318 EXPECT_EQ(1, TilingData(3, 1, 1, true).tileSizeX(0));
319 EXPECT_EQ(0, TilingData(3, 1, 1, true).tilePositionX(0));
320 EXPECT_EQ(1, TilingData(3, 1, 100, true).tileSizeX(0));
321 EXPECT_EQ(0, TilingData(3, 1, 100, true).tilePositionX(0));
322 EXPECT_EQ(3, TilingData(3, 3, 1, true).tileSizeX(0));
323 EXPECT_EQ(0, TilingData(3, 3, 1, true).tilePositionX(0));
324 EXPECT_EQ(3, TilingData(3, 3, 100, true).tileSizeX(0));
325 EXPECT_EQ(0, TilingData(3, 3, 100, true).tilePositionX(0));
330 EXPECT_EQ(2, TilingData(3, 6, 1, false).numTiles());
331 EXPECT_EQ(3, TilingData(3, 6, 1, false).tileSizeX(0));
332 EXPECT_EQ(3, TilingData(3, 6, 1, false).tileSizeX(1));
333 EXPECT_EQ(0, TilingData(3, 6, 1, false).tilePositionX(0));
334 EXPECT_EQ(3, TilingData(3, 6, 1, false).tilePositionX(1));
335 EXPECT_EQ(3, TilingData(3, 6, 100, false).tileSizeX(0));
336 EXPECT_EQ(3, TilingData(3, 6, 100, false).tileSizeX(1));
337 EXPECT_EQ(0, TilingData(3, 6, 100, false).tilePositionX(0));
338 EXPECT_EQ(3, TilingData(3, 6, 100, false).tilePositionX(1));
342 // positions 0, 2, 3, 4
343 EXPECT_EQ(4, TilingData(3, 6, 1, true).numTiles());
344 EXPECT_EQ(2, TilingData(3, 6, 1, true).tileSizeX(0));
345 EXPECT_EQ(1, TilingData(3, 6, 1, true).tileSizeX(1));
346 EXPECT_EQ(1, TilingData(3, 6, 1, true).tileSizeX(2));
347 EXPECT_EQ(2, TilingData(3, 6, 1, true).tileSizeX(3));
348 EXPECT_EQ(0, TilingData(3, 6, 1, true).tilePositionX(0));
349 EXPECT_EQ(2, TilingData(3, 6, 1, true).tilePositionX(1));
350 EXPECT_EQ(3, TilingData(3, 6, 1, true).tilePositionX(2));
351 EXPECT_EQ(4, TilingData(3, 6, 1, true).tilePositionX(3));
352 EXPECT_EQ(2, TilingData(3, 6, 100, true).tileSizeX(0));
353 EXPECT_EQ(1, TilingData(3, 6, 100, true).tileSizeX(1));
354 EXPECT_EQ(1, TilingData(3, 6, 100, true).tileSizeX(2));
355 EXPECT_EQ(2, TilingData(3, 6, 100, true).tileSizeX(3));
356 EXPECT_EQ(0, TilingData(3, 6, 100, true).tilePositionX(0));
357 EXPECT_EQ(2, TilingData(3, 6, 100, true).tilePositionX(1));
358 EXPECT_EQ(3, TilingData(3, 6, 100, true).tilePositionX(2));
359 EXPECT_EQ(4, TilingData(3, 6, 100, true).tilePositionX(3));
362 TEST(TilingDataTest, tileSizeY_and_tilePositionY)
364 // Single tile cases:
365 EXPECT_EQ(1, TilingData(3, 1, 1, false).tileSizeY(0));
366 EXPECT_EQ(0, TilingData(3, 1, 1, false).tilePositionY(0));
367 EXPECT_EQ(1, TilingData(3, 100, 1, false).tileSizeY(0));
368 EXPECT_EQ(0, TilingData(3, 100, 1, false).tilePositionY(0));
369 EXPECT_EQ(3, TilingData(3, 1, 3, false).tileSizeY(0));
370 EXPECT_EQ(0, TilingData(3, 1, 3, false).tilePositionY(0));
371 EXPECT_EQ(3, TilingData(3, 100, 3, false).tileSizeY(0));
372 EXPECT_EQ(0, TilingData(3, 100, 3, false).tilePositionY(0));
373 EXPECT_EQ(1, TilingData(3, 1, 1, true).tileSizeY(0));
374 EXPECT_EQ(0, TilingData(3, 1, 1, true).tilePositionY(0));
375 EXPECT_EQ(1, TilingData(3, 100, 1, true).tileSizeY(0));
376 EXPECT_EQ(0, TilingData(3, 100, 1, true).tilePositionY(0));
377 EXPECT_EQ(3, TilingData(3, 1, 3, true).tileSizeY(0));
378 EXPECT_EQ(0, TilingData(3, 1, 3, true).tilePositionY(0));
379 EXPECT_EQ(3, TilingData(3, 100, 3, true).tileSizeY(0));
380 EXPECT_EQ(0, TilingData(3, 100, 3, true).tilePositionY(0));
385 EXPECT_EQ(2, TilingData(3, 1, 6, false).numTiles());
386 EXPECT_EQ(3, TilingData(3, 1, 6, false).tileSizeY(0));
387 EXPECT_EQ(3, TilingData(3, 1, 6, false).tileSizeY(1));
388 EXPECT_EQ(0, TilingData(3, 1, 6, false).tilePositionY(0));
389 EXPECT_EQ(3, TilingData(3, 1, 6, false).tilePositionY(1));
390 EXPECT_EQ(3, TilingData(3, 100, 6, false).tileSizeY(0));
391 EXPECT_EQ(3, TilingData(3, 100, 6, false).tileSizeY(1));
392 EXPECT_EQ(0, TilingData(3, 100, 6, false).tilePositionY(0));
393 EXPECT_EQ(3, TilingData(3, 100, 6, false).tilePositionY(1));
397 // positions 0, 2, 3, 4
398 EXPECT_EQ(4, TilingData(3, 1, 6, true).numTiles());
399 EXPECT_EQ(2, TilingData(3, 1, 6, true).tileSizeY(0));
400 EXPECT_EQ(1, TilingData(3, 1, 6, true).tileSizeY(1));
401 EXPECT_EQ(1, TilingData(3, 1, 6, true).tileSizeY(2));
402 EXPECT_EQ(2, TilingData(3, 1, 6, true).tileSizeY(3));
403 EXPECT_EQ(0, TilingData(3, 1, 6, true).tilePositionY(0));
404 EXPECT_EQ(2, TilingData(3, 1, 6, true).tilePositionY(1));
405 EXPECT_EQ(3, TilingData(3, 1, 6, true).tilePositionY(2));
406 EXPECT_EQ(4, TilingData(3, 1, 6, true).tilePositionY(3));
407 EXPECT_EQ(2, TilingData(3, 100, 6, true).tileSizeY(0));
408 EXPECT_EQ(1, TilingData(3, 100, 6, true).tileSizeY(1));
409 EXPECT_EQ(1, TilingData(3, 100, 6, true).tileSizeY(2));
410 EXPECT_EQ(2, TilingData(3, 100, 6, true).tileSizeY(3));
411 EXPECT_EQ(0, TilingData(3, 100, 6, true).tilePositionY(0));
412 EXPECT_EQ(2, TilingData(3, 100, 6, true).tilePositionY(1));
413 EXPECT_EQ(3, TilingData(3, 100, 6, true).tilePositionY(2));
414 EXPECT_EQ(4, TilingData(3, 100, 6, true).tilePositionY(3));
417 TEST(TilingDataTest, setTotalSize)
419 TilingData data(5, 5, 5, false);
420 EXPECT_EQ(5, data.totalSizeX());
421 EXPECT_EQ(5, data.totalSizeY());
422 EXPECT_EQ(1, data.numTilesX());
423 EXPECT_EQ(5, data.tileSizeX(0));
424 EXPECT_EQ(1, data.numTilesY());
425 EXPECT_EQ(5, data.tileSizeY(0));
427 data.setTotalSize(6, 5);
428 EXPECT_EQ(6, data.totalSizeX());
429 EXPECT_EQ(5, data.totalSizeY());
430 EXPECT_EQ(2, data.numTilesX());
431 EXPECT_EQ(5, data.tileSizeX(0));
432 EXPECT_EQ(1, data.tileSizeX(1));
433 EXPECT_EQ(1, data.numTilesY());
434 EXPECT_EQ(5, data.tileSizeY(0));
436 data.setTotalSize(5, 12);
437 EXPECT_EQ(5, data.totalSizeX());
438 EXPECT_EQ(12, data.totalSizeY());
439 EXPECT_EQ(1, data.numTilesX());
440 EXPECT_EQ(5, data.tileSizeX(0));
441 EXPECT_EQ(3, data.numTilesY());
442 EXPECT_EQ(5, data.tileSizeY(0));
443 EXPECT_EQ(5, data.tileSizeY(1));
444 EXPECT_EQ(2, data.tileSizeY(2));
447 TEST(TilingDataTest, setMaxTextureSizeNoBorders)
449 TilingData data(8, 16, 32, false);
450 EXPECT_EQ(2, data.numTilesX());
451 EXPECT_EQ(4, data.numTilesY());
453 data.setMaxTextureSize(32);
454 EXPECT_EQ(32, data.maxTextureSize());
455 EXPECT_EQ(1, data.numTilesX());
456 EXPECT_EQ(1, data.numTilesY());
458 data.setMaxTextureSize(2);
459 EXPECT_EQ(2, data.maxTextureSize());
460 EXPECT_EQ(8, data.numTilesX());
461 EXPECT_EQ(16, data.numTilesY());
463 data.setMaxTextureSize(5);
464 EXPECT_EQ(5, data.maxTextureSize());
465 EXPECT_EQ(4, data.numTilesX());
466 EXPECT_EQ(7, data.numTilesY());
469 TEST(TilingDataTest, setMaxTextureSizeBorders)
471 TilingData data(8, 16, 32, true);
472 EXPECT_EQ(3, data.numTilesX());
473 EXPECT_EQ(5, data.numTilesY());
475 data.setMaxTextureSize(32);
476 EXPECT_EQ(32, data.maxTextureSize());
477 EXPECT_EQ(1, data.numTilesX());
478 EXPECT_EQ(1, data.numTilesY());
480 data.setMaxTextureSize(2);
481 EXPECT_EQ(2, data.maxTextureSize());
482 EXPECT_EQ(0, data.numTilesX());
483 EXPECT_EQ(0, data.numTilesY());
485 data.setMaxTextureSize(5);
486 EXPECT_EQ(5, data.maxTextureSize());
487 EXPECT_EQ(5, data.numTilesX());
488 EXPECT_EQ(10, data.numTilesY());
491 TEST(TilingDataTest, assignment)
494 TilingData source(8, 16, 32, true);
495 TilingData dest = source;
496 EXPECT_EQ(source.borderTexels(), dest.borderTexels());
497 EXPECT_EQ(source.maxTextureSize(), dest.maxTextureSize());
498 EXPECT_EQ(source.numTilesX(), dest.numTilesX());
499 EXPECT_EQ(source.numTilesY(), dest.numTilesY());
500 EXPECT_EQ(source.totalSizeX(), dest.totalSizeX());
501 EXPECT_EQ(source.totalSizeY(), dest.totalSizeY());
504 TilingData source(3, 6, 100, false);
505 TilingData dest(source);
506 EXPECT_EQ(source.borderTexels(), dest.borderTexels());
507 EXPECT_EQ(source.maxTextureSize(), dest.maxTextureSize());
508 EXPECT_EQ(source.numTilesX(), dest.numTilesX());
509 EXPECT_EQ(source.numTilesY(), dest.numTilesY());
510 EXPECT_EQ(source.totalSizeX(), dest.totalSizeX());
511 EXPECT_EQ(source.totalSizeY(), dest.totalSizeY());