1 /* 2 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are 6 * met: 7 * 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 13 * distribution. 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. 17 * 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. 29 */ 30 31 #include "config.h" 32 33 #include "TilingData.h" 34 35 #include <gtest/gtest.h> 36 37 using namespace WebCore; 38 39 namespace { 40 41 TEST(TilingDataTest, numTiles_NoTiling) 42 { 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()); 48 } 49 50 TEST(TilingDataTest, numTiles_TilingNoBorders) 51 { 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()); 60 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()); 69 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()); 81 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()); 93 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()); 99 } 100 101 TEST(TilingDataTest, numTiles_TilingWithBorders) 102 { 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()); 111 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()); 119 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()); 127 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()); 139 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()); 151 } 152 153 TEST(TilingDataTest, tileXIndexFromSrcCoord) 154 { 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)); 167 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)); 180 } 181 TEST(TilingDataTest, tileYIndexFromSrcCoord) 182 { 183 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(0)); 184 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(1)); 185 EXPECT_EQ(0, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(2)); 186 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(3)); 187 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(4)); 188 EXPECT_EQ(1, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(5)); 189 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(6)); 190 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(7)); 191 EXPECT_EQ(2, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(8)); 192 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(9)); 193 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(10)); 194 EXPECT_EQ(3, TilingData(3, 10, 10, false).tileYIndexFromSrcCoord(11)); 195 196 EXPECT_EQ(0, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(0)); 197 EXPECT_EQ(0, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(1)); 198 EXPECT_EQ(1, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(2)); 199 EXPECT_EQ(2, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(3)); 200 EXPECT_EQ(3, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(4)); 201 EXPECT_EQ(4, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(5)); 202 EXPECT_EQ(5, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(6)); 203 EXPECT_EQ(6, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(7)); 204 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(8)); 205 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(9)); 206 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(10)); 207 EXPECT_EQ(7, TilingData(3, 10, 10, true).tileYIndexFromSrcCoord(11)); 208 } 209 210 TEST(TilingDataTest, tileSizeX) 211 { 212 EXPECT_EQ(5, TilingData(5, 5, 5, false).tileSizeX(0)); 213 EXPECT_EQ(5, TilingData(5, 5, 5, true).tileSizeX(0)); 214 215 EXPECT_EQ(5, TilingData(5, 6, 6, false).tileSizeX(0)); 216 EXPECT_EQ(1, TilingData(5, 6, 6, false).tileSizeX(1)); 217 EXPECT_EQ(4, TilingData(5, 6, 6, true).tileSizeX(0)); 218 EXPECT_EQ(2, TilingData(5, 6, 6, true).tileSizeX(1)); 219 220 EXPECT_EQ(5, TilingData(5, 8, 8, false).tileSizeX(0)); 221 EXPECT_EQ(3, TilingData(5, 8, 8, false).tileSizeX(1)); 222 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeX(0)); 223 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeX(1)); 224 225 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeX(0)); 226 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeX(1)); 227 EXPECT_EQ(4, TilingData(5, 10, 10, true).tileSizeX(0)); 228 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeX(1)); 229 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeX(2)); 230 231 EXPECT_EQ(4, TilingData(5, 11, 11, true).tileSizeX(2)); 232 EXPECT_EQ(3, TilingData(5, 12, 12, true).tileSizeX(2)); 233 } 234 TEST(TilingDataTest, tileSizeY) 235 { 236 EXPECT_EQ(5, TilingData(5, 5, 5, false).tileSizeY(0)); 237 EXPECT_EQ(5, TilingData(5, 5, 5, true).tileSizeY(0)); 238 239 EXPECT_EQ(5, TilingData(5, 6, 6, false).tileSizeY(0)); 240 EXPECT_EQ(1, TilingData(5, 6, 6, false).tileSizeY(1)); 241 EXPECT_EQ(4, TilingData(5, 6, 6, true).tileSizeY(0)); 242 EXPECT_EQ(2, TilingData(5, 6, 6, true).tileSizeY(1)); 243 244 EXPECT_EQ(5, TilingData(5, 8, 8, false).tileSizeY(0)); 245 EXPECT_EQ(3, TilingData(5, 8, 8, false).tileSizeY(1)); 246 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeY(0)); 247 EXPECT_EQ(4, TilingData(5, 8, 8, true).tileSizeY(1)); 248 249 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeY(0)); 250 EXPECT_EQ(5, TilingData(5, 10, 10, false).tileSizeY(1)); 251 EXPECT_EQ(4, TilingData(5, 10, 10, true).tileSizeY(0)); 252 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeY(1)); 253 EXPECT_EQ(3, TilingData(5, 10, 10, true).tileSizeY(2)); 254 255 EXPECT_EQ(4, TilingData(5, 11, 11, true).tileSizeY(2)); 256 EXPECT_EQ(3, TilingData(5, 12, 12, true).tileSizeY(2)); 257 } 258 259 TEST(TilingDataTest, tileSizeX_and_tilePositionX) 260 { 261 // Single tile cases: 262 EXPECT_EQ(1, TilingData(3, 1, 1, false).tileSizeX(0)); 263 EXPECT_EQ(0, TilingData(3, 1, 1, false).tilePositionX(0)); 264 EXPECT_EQ(1, TilingData(3, 1, 100, false).tileSizeX(0)); 265 EXPECT_EQ(0, TilingData(3, 1, 100, false).tilePositionX(0)); 266 EXPECT_EQ(3, TilingData(3, 3, 1, false).tileSizeX(0)); 267 EXPECT_EQ(0, TilingData(3, 3, 1, false).tilePositionX(0)); 268 EXPECT_EQ(3, TilingData(3, 3, 100, false).tileSizeX(0)); 269 EXPECT_EQ(0, TilingData(3, 3, 100, false).tilePositionX(0)); 270 EXPECT_EQ(1, TilingData(3, 1, 1, true).tileSizeX(0)); 271 EXPECT_EQ(0, TilingData(3, 1, 1, true).tilePositionX(0)); 272 EXPECT_EQ(1, TilingData(3, 1, 100, true).tileSizeX(0)); 273 EXPECT_EQ(0, TilingData(3, 1, 100, true).tilePositionX(0)); 274 EXPECT_EQ(3, TilingData(3, 3, 1, true).tileSizeX(0)); 275 EXPECT_EQ(0, TilingData(3, 3, 1, true).tilePositionX(0)); 276 EXPECT_EQ(3, TilingData(3, 3, 100, true).tileSizeX(0)); 277 EXPECT_EQ(0, TilingData(3, 3, 100, true).tilePositionX(0)); 278 279 // Multiple tiles: 280 // no border 281 // positions 0, 3 282 EXPECT_EQ(2, TilingData(3, 6, 1, false).numTiles()); 283 EXPECT_EQ(3, TilingData(3, 6, 1, false).tileSizeX(0)); 284 EXPECT_EQ(3, TilingData(3, 6, 1, false).tileSizeX(1)); 285 EXPECT_EQ(0, TilingData(3, 6, 1, false).tilePositionX(0)); 286 EXPECT_EQ(3, TilingData(3, 6, 1, false).tilePositionX(1)); 287 EXPECT_EQ(3, TilingData(3, 6, 100, false).tileSizeX(0)); 288 EXPECT_EQ(3, TilingData(3, 6, 100, false).tileSizeX(1)); 289 EXPECT_EQ(0, TilingData(3, 6, 100, false).tilePositionX(0)); 290 EXPECT_EQ(3, TilingData(3, 6, 100, false).tilePositionX(1)); 291 292 // Multiple tiles: 293 // with border 294 // positions 0, 2, 3, 4 295 EXPECT_EQ(4, TilingData(3, 6, 1, true).numTiles()); 296 EXPECT_EQ(2, TilingData(3, 6, 1, true).tileSizeX(0)); 297 EXPECT_EQ(1, TilingData(3, 6, 1, true).tileSizeX(1)); 298 EXPECT_EQ(1, TilingData(3, 6, 1, true).tileSizeX(2)); 299 EXPECT_EQ(2, TilingData(3, 6, 1, true).tileSizeX(3)); 300 EXPECT_EQ(0, TilingData(3, 6, 1, true).tilePositionX(0)); 301 EXPECT_EQ(2, TilingData(3, 6, 1, true).tilePositionX(1)); 302 EXPECT_EQ(3, TilingData(3, 6, 1, true).tilePositionX(2)); 303 EXPECT_EQ(4, TilingData(3, 6, 1, true).tilePositionX(3)); 304 EXPECT_EQ(2, TilingData(3, 6, 100, true).tileSizeX(0)); 305 EXPECT_EQ(1, TilingData(3, 6, 100, true).tileSizeX(1)); 306 EXPECT_EQ(1, TilingData(3, 6, 100, true).tileSizeX(2)); 307 EXPECT_EQ(2, TilingData(3, 6, 100, true).tileSizeX(3)); 308 EXPECT_EQ(0, TilingData(3, 6, 100, true).tilePositionX(0)); 309 EXPECT_EQ(2, TilingData(3, 6, 100, true).tilePositionX(1)); 310 EXPECT_EQ(3, TilingData(3, 6, 100, true).tilePositionX(2)); 311 EXPECT_EQ(4, TilingData(3, 6, 100, true).tilePositionX(3)); 312 } 313 314 TEST(TilingDataTest, tileSizeY_and_tilePositionY) 315 { 316 // Single tile cases: 317 EXPECT_EQ(1, TilingData(3, 1, 1, false).tileSizeY(0)); 318 EXPECT_EQ(0, TilingData(3, 1, 1, false).tilePositionY(0)); 319 EXPECT_EQ(1, TilingData(3, 100, 1, false).tileSizeY(0)); 320 EXPECT_EQ(0, TilingData(3, 100, 1, false).tilePositionY(0)); 321 EXPECT_EQ(3, TilingData(3, 1, 3, false).tileSizeY(0)); 322 EXPECT_EQ(0, TilingData(3, 1, 3, false).tilePositionY(0)); 323 EXPECT_EQ(3, TilingData(3, 100, 3, false).tileSizeY(0)); 324 EXPECT_EQ(0, TilingData(3, 100, 3, false).tilePositionY(0)); 325 EXPECT_EQ(1, TilingData(3, 1, 1, true).tileSizeY(0)); 326 EXPECT_EQ(0, TilingData(3, 1, 1, true).tilePositionY(0)); 327 EXPECT_EQ(1, TilingData(3, 100, 1, true).tileSizeY(0)); 328 EXPECT_EQ(0, TilingData(3, 100, 1, true).tilePositionY(0)); 329 EXPECT_EQ(3, TilingData(3, 1, 3, true).tileSizeY(0)); 330 EXPECT_EQ(0, TilingData(3, 1, 3, true).tilePositionY(0)); 331 EXPECT_EQ(3, TilingData(3, 100, 3, true).tileSizeY(0)); 332 EXPECT_EQ(0, TilingData(3, 100, 3, true).tilePositionY(0)); 333 334 // Multiple tiles: 335 // no border 336 // positions 0, 3 337 EXPECT_EQ(2, TilingData(3, 1, 6, false).numTiles()); 338 EXPECT_EQ(3, TilingData(3, 1, 6, false).tileSizeY(0)); 339 EXPECT_EQ(3, TilingData(3, 1, 6, false).tileSizeY(1)); 340 EXPECT_EQ(0, TilingData(3, 1, 6, false).tilePositionY(0)); 341 EXPECT_EQ(3, TilingData(3, 1, 6, false).tilePositionY(1)); 342 EXPECT_EQ(3, TilingData(3, 100, 6, false).tileSizeY(0)); 343 EXPECT_EQ(3, TilingData(3, 100, 6, false).tileSizeY(1)); 344 EXPECT_EQ(0, TilingData(3, 100, 6, false).tilePositionY(0)); 345 EXPECT_EQ(3, TilingData(3, 100, 6, false).tilePositionY(1)); 346 347 // Multiple tiles: 348 // with border 349 // positions 0, 2, 3, 4 350 EXPECT_EQ(4, TilingData(3, 1, 6, true).numTiles()); 351 EXPECT_EQ(2, TilingData(3, 1, 6, true).tileSizeY(0)); 352 EXPECT_EQ(1, TilingData(3, 1, 6, true).tileSizeY(1)); 353 EXPECT_EQ(1, TilingData(3, 1, 6, true).tileSizeY(2)); 354 EXPECT_EQ(2, TilingData(3, 1, 6, true).tileSizeY(3)); 355 EXPECT_EQ(0, TilingData(3, 1, 6, true).tilePositionY(0)); 356 EXPECT_EQ(2, TilingData(3, 1, 6, true).tilePositionY(1)); 357 EXPECT_EQ(3, TilingData(3, 1, 6, true).tilePositionY(2)); 358 EXPECT_EQ(4, TilingData(3, 1, 6, true).tilePositionY(3)); 359 EXPECT_EQ(2, TilingData(3, 100, 6, true).tileSizeY(0)); 360 EXPECT_EQ(1, TilingData(3, 100, 6, true).tileSizeY(1)); 361 EXPECT_EQ(1, TilingData(3, 100, 6, true).tileSizeY(2)); 362 EXPECT_EQ(2, TilingData(3, 100, 6, true).tileSizeY(3)); 363 EXPECT_EQ(0, TilingData(3, 100, 6, true).tilePositionY(0)); 364 EXPECT_EQ(2, TilingData(3, 100, 6, true).tilePositionY(1)); 365 EXPECT_EQ(3, TilingData(3, 100, 6, true).tilePositionY(2)); 366 EXPECT_EQ(4, TilingData(3, 100, 6, true).tilePositionY(3)); 367 } 368 369 TEST(TilingDataTest, setTotalSize) 370 { 371 TilingData data(5, 5, 5, false); 372 EXPECT_EQ(5, data.totalSizeX()); 373 EXPECT_EQ(5, data.totalSizeY()); 374 EXPECT_EQ(1, data.numTilesX()); 375 EXPECT_EQ(5, data.tileSizeX(0)); 376 EXPECT_EQ(1, data.numTilesY()); 377 EXPECT_EQ(5, data.tileSizeY(0)); 378 379 data.setTotalSize(6, 5); 380 EXPECT_EQ(6, data.totalSizeX()); 381 EXPECT_EQ(5, data.totalSizeY()); 382 EXPECT_EQ(2, data.numTilesX()); 383 EXPECT_EQ(5, data.tileSizeX(0)); 384 EXPECT_EQ(1, data.tileSizeX(1)); 385 EXPECT_EQ(1, data.numTilesY()); 386 EXPECT_EQ(5, data.tileSizeY(0)); 387 388 data.setTotalSize(5, 12); 389 EXPECT_EQ(5, data.totalSizeX()); 390 EXPECT_EQ(12, data.totalSizeY()); 391 EXPECT_EQ(1, data.numTilesX()); 392 EXPECT_EQ(5, data.tileSizeX(0)); 393 EXPECT_EQ(3, data.numTilesY()); 394 EXPECT_EQ(5, data.tileSizeY(0)); 395 EXPECT_EQ(5, data.tileSizeY(1)); 396 EXPECT_EQ(2, data.tileSizeY(2)); 397 } 398 399 TEST(TilingDataTest, setMaxTextureSizeNoBorders) 400 { 401 TilingData data(8, 16, 32, false); 402 EXPECT_EQ(2, data.numTilesX()); 403 EXPECT_EQ(4, data.numTilesY()); 404 405 data.setMaxTextureSize(32); 406 EXPECT_EQ(32, data.maxTextureSize()); 407 EXPECT_EQ(1, data.numTilesX()); 408 EXPECT_EQ(1, data.numTilesY()); 409 410 data.setMaxTextureSize(2); 411 EXPECT_EQ(2, data.maxTextureSize()); 412 EXPECT_EQ(8, data.numTilesX()); 413 EXPECT_EQ(16, data.numTilesY()); 414 415 data.setMaxTextureSize(5); 416 EXPECT_EQ(5, data.maxTextureSize()); 417 EXPECT_EQ(4, data.numTilesX()); 418 EXPECT_EQ(7, data.numTilesY()); 419 } 420 421 TEST(TilingDataTest, setMaxTextureSizeBorders) 422 { 423 TilingData data(8, 16, 32, true); 424 EXPECT_EQ(3, data.numTilesX()); 425 EXPECT_EQ(5, data.numTilesY()); 426 427 data.setMaxTextureSize(32); 428 EXPECT_EQ(32, data.maxTextureSize()); 429 EXPECT_EQ(1, data.numTilesX()); 430 EXPECT_EQ(1, data.numTilesY()); 431 432 data.setMaxTextureSize(2); 433 EXPECT_EQ(2, data.maxTextureSize()); 434 EXPECT_EQ(0, data.numTilesX()); 435 EXPECT_EQ(0, data.numTilesY()); 436 437 data.setMaxTextureSize(5); 438 EXPECT_EQ(5, data.maxTextureSize()); 439 EXPECT_EQ(5, data.numTilesX()); 440 EXPECT_EQ(10, data.numTilesY()); 441 } 442 443 } // namespace 444