Index: cc/tiling_data_unittest.cc |
diff --git a/cc/tiling_data_unittest.cc b/cc/tiling_data_unittest.cc |
index 774b70ef2aa917bbd1b1a7c9fd25f4377a18ada4..5c472b8030cd9196df55b946507cf5f36c284491 100644 |
--- a/cc/tiling_data_unittest.cc |
+++ b/cc/tiling_data_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "cc/tiling_data.h" |
+#include "cc/test/geometry_test_utils.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace cc { |
@@ -42,6 +43,24 @@ int YIndex( |
return tiling.TileYIndexFromSrcCoord(y_coord); |
} |
+int BorderXIndex( |
+ gfx::Size max_texture_size, |
+ gfx::Size total_size, |
+ bool has_border_texels, |
+ int x_coord) { |
+ TilingData tiling(max_texture_size, total_size, has_border_texels); |
+ return tiling.BorderTileXIndexFromSrcCoord(x_coord); |
+} |
+ |
+int BorderYIndex( |
+ gfx::Size max_texture_size, |
+ gfx::Size total_size, |
+ bool has_border_texels, |
+ int y_coord) { |
+ TilingData tiling(max_texture_size, total_size, has_border_texels); |
+ return tiling.BorderTileYIndexFromSrcCoord(y_coord); |
+} |
+ |
int PosX( |
gfx::Size max_texture_size, |
gfx::Size total_size, |
@@ -245,6 +264,59 @@ TEST(TilingDataTest, tileXIndexFromSrcCoord) |
EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); |
} |
+TEST(TilingDataTest, borderTileXIndexFromSrcCoord) |
+{ |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); |
+ EXPECT_EQ(1, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); |
+ EXPECT_EQ(1, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); |
+ EXPECT_EQ(1, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); |
+ EXPECT_EQ(2, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); |
+ EXPECT_EQ(2, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); |
+ EXPECT_EQ(2, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); |
+ EXPECT_EQ(3, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); |
+ EXPECT_EQ(3, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); |
+ EXPECT_EQ(3, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); |
+ |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); |
+ EXPECT_EQ(1, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); |
+ EXPECT_EQ(2, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); |
+ EXPECT_EQ(3, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); |
+ EXPECT_EQ(4, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); |
+ EXPECT_EQ(5, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); |
+ EXPECT_EQ(6, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); |
+ EXPECT_EQ(7, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); |
+ EXPECT_EQ(7, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); |
+ EXPECT_EQ(7, BorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); |
+ |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); |
+ |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); |
+ EXPECT_EQ(1, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); |
+ |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); |
+ |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); |
+ EXPECT_EQ(0, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); |
+ EXPECT_EQ(1, BorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); |
+} |
+ |
TEST(TilingDataTest, tileYIndexFromSrcCoord) |
{ |
EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); |
@@ -298,6 +370,59 @@ TEST(TilingDataTest, tileYIndexFromSrcCoord) |
EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); |
} |
+TEST(TilingDataTest, borderTileYIndexFromSrcCoord) |
+{ |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); |
+ EXPECT_EQ(1, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); |
+ EXPECT_EQ(1, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); |
+ EXPECT_EQ(1, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); |
+ EXPECT_EQ(2, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); |
+ EXPECT_EQ(2, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); |
+ EXPECT_EQ(2, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); |
+ EXPECT_EQ(3, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); |
+ EXPECT_EQ(3, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); |
+ EXPECT_EQ(3, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); |
+ |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); |
+ EXPECT_EQ(1, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); |
+ EXPECT_EQ(2, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); |
+ EXPECT_EQ(3, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); |
+ EXPECT_EQ(4, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); |
+ EXPECT_EQ(5, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); |
+ EXPECT_EQ(6, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); |
+ EXPECT_EQ(7, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); |
+ EXPECT_EQ(7, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); |
+ EXPECT_EQ(7, BorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); |
+ |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); |
+ |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); |
+ EXPECT_EQ(1, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); |
+ |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); |
+ |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); |
+ EXPECT_EQ(0, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); |
+ EXPECT_EQ(1, BorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); |
+} |
+ |
TEST(TilingDataTest, tileSizeX) |
{ |
EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(5, 5), false, 0)); |
@@ -589,5 +714,195 @@ TEST(TilingDataTest, setBorderTexels) |
EXPECT_EQ(4, data.num_tiles_y()); |
} |
+TEST(TilingDataTest, largeBorders) |
+{ |
+ TilingData data(gfx::Size(100, 80), gfx::Size(200, 145), 30); |
+ EXPECT_EQ(30, data.border_texels()); |
+ |
+ EXPECT_EQ(70, data.TileSizeX(0)); |
+ EXPECT_EQ(40, data.TileSizeX(1)); |
+ EXPECT_EQ(40, data.TileSizeX(2)); |
+ EXPECT_EQ(50, data.TileSizeX(3)); |
+ EXPECT_EQ(4, data.num_tiles_x()); |
+ |
+ EXPECT_EQ(50, data.TileSizeY(0)); |
+ EXPECT_EQ(20, data.TileSizeY(1)); |
+ EXPECT_EQ(20, data.TileSizeY(2)); |
+ EXPECT_EQ(20, data.TileSizeY(3)); |
+ EXPECT_EQ(35, data.TileSizeY(4)); |
+ EXPECT_EQ(5, data.num_tiles_y()); |
+ |
+ EXPECT_RECT_EQ(gfx::Rect(0, 0, 70, 50), data.TileBounds(0, 0)); |
+ EXPECT_RECT_EQ(gfx::Rect(70, 50, 40, 20), data.TileBounds(1, 1)); |
+ EXPECT_RECT_EQ(gfx::Rect(110, 110, 40, 35), data.TileBounds(2, 4)); |
+ EXPECT_RECT_EQ(gfx::Rect(150, 70, 50, 20), data.TileBounds(3, 2)); |
+ EXPECT_RECT_EQ(gfx::Rect(150, 110, 50, 35), data.TileBounds(3, 4)); |
+ |
+ EXPECT_RECT_EQ(gfx::Rect(0, 0, 100, 80), data.TileBoundsWithBorder(0, 0)); |
+ EXPECT_RECT_EQ(gfx::Rect(40, 20, 100, 80), data.TileBoundsWithBorder(1, 1)); |
+ EXPECT_RECT_EQ(gfx::Rect(80, 80, 100, 65), data.TileBoundsWithBorder(2, 4)); |
+ EXPECT_RECT_EQ(gfx::Rect(120, 40, 80, 80), data.TileBoundsWithBorder(3, 2)); |
+ EXPECT_RECT_EQ(gfx::Rect(120, 80, 80, 65), data.TileBoundsWithBorder(3, 4)); |
+ |
+ EXPECT_EQ(0, data.TileXIndexFromSrcCoord(0)); |
+ EXPECT_EQ(0, data.TileXIndexFromSrcCoord(69)); |
+ EXPECT_EQ(1, data.TileXIndexFromSrcCoord(70)); |
+ EXPECT_EQ(1, data.TileXIndexFromSrcCoord(109)); |
+ EXPECT_EQ(2, data.TileXIndexFromSrcCoord(110)); |
+ EXPECT_EQ(2, data.TileXIndexFromSrcCoord(149)); |
+ EXPECT_EQ(3, data.TileXIndexFromSrcCoord(150)); |
+ EXPECT_EQ(3, data.TileXIndexFromSrcCoord(199)); |
+ |
+ EXPECT_EQ(0, data.TileYIndexFromSrcCoord(0)); |
+ EXPECT_EQ(0, data.TileYIndexFromSrcCoord(49)); |
+ EXPECT_EQ(1, data.TileYIndexFromSrcCoord(50)); |
+ EXPECT_EQ(1, data.TileYIndexFromSrcCoord(69)); |
+ EXPECT_EQ(2, data.TileYIndexFromSrcCoord(70)); |
+ EXPECT_EQ(2, data.TileYIndexFromSrcCoord(89)); |
+ EXPECT_EQ(3, data.TileYIndexFromSrcCoord(90)); |
+ EXPECT_EQ(3, data.TileYIndexFromSrcCoord(109)); |
+ EXPECT_EQ(4, data.TileYIndexFromSrcCoord(110)); |
+ EXPECT_EQ(4, data.TileYIndexFromSrcCoord(144)); |
+ |
+ EXPECT_EQ(0, data.BorderTileXIndexFromSrcCoord(0)); |
+ EXPECT_EQ(0, data.BorderTileXIndexFromSrcCoord(99)); |
+ EXPECT_EQ(1, data.BorderTileXIndexFromSrcCoord(100)); |
+ EXPECT_EQ(1, data.BorderTileXIndexFromSrcCoord(139)); |
+ EXPECT_EQ(2, data.BorderTileXIndexFromSrcCoord(140)); |
+ EXPECT_EQ(2, data.BorderTileXIndexFromSrcCoord(179)); |
+ EXPECT_EQ(3, data.BorderTileXIndexFromSrcCoord(180)); |
+ EXPECT_EQ(3, data.BorderTileXIndexFromSrcCoord(199)); |
+ |
+ EXPECT_EQ(0, data.BorderTileYIndexFromSrcCoord(0)); |
+ EXPECT_EQ(0, data.BorderTileYIndexFromSrcCoord(79)); |
+ EXPECT_EQ(1, data.BorderTileYIndexFromSrcCoord(80)); |
+ EXPECT_EQ(1, data.BorderTileYIndexFromSrcCoord(99)); |
+ EXPECT_EQ(2, data.BorderTileYIndexFromSrcCoord(100)); |
+ EXPECT_EQ(2, data.BorderTileYIndexFromSrcCoord(119)); |
+ EXPECT_EQ(3, data.BorderTileYIndexFromSrcCoord(120)); |
+ EXPECT_EQ(3, data.BorderTileYIndexFromSrcCoord(139)); |
+ EXPECT_EQ(4, data.BorderTileYIndexFromSrcCoord(140)); |
+ EXPECT_EQ(4, data.BorderTileYIndexFromSrcCoord(144)); |
+} |
+ |
+void TestIterate( |
+ const TilingData& data, |
+ gfx::Rect rect, |
+ int expect_left, |
+ int expect_top, |
+ int expect_right, |
+ int expect_bottom) { |
+ |
+ EXPECT_GE(expect_left, 0); |
+ EXPECT_GE(expect_top, 0); |
+ EXPECT_LT(expect_right, data.num_tiles_x()); |
+ EXPECT_LT(expect_bottom, data.num_tiles_y()); |
+ |
+ std::vector<std::pair<int, int> > expected; |
+ for (int x = 0; x < data.num_tiles_x(); ++x) { |
+ for (int y = 0; y < data.num_tiles_y(); ++y) { |
+ gfx::Rect bounds = data.TileBoundsWithBorder(x, y); |
+ if (x >= expect_left && x <= expect_right && |
+ y >= expect_top && y <= expect_bottom) { |
+ EXPECT_TRUE(bounds.Intersects(rect)); |
+ expected.push_back(std::make_pair(x, y)); |
+ } else { |
+ EXPECT_FALSE(bounds.Intersects(rect)); |
+ } |
+ } |
+ } |
+ |
+ for (TilingData::Iterator iter(&data, rect); iter; ++iter) { |
+ std::pair<int, int> find = std::make_pair(iter.index_x(), iter.index_y()); |
+ bool found = false; |
+ for (size_t i = 0; i < expected.size(); ++i) { |
+ if (expected[i] == find) { |
+ expected[i] = expected.back(); |
+ expected.pop_back(); |
+ found = true; |
+ break; |
+ } |
+ } |
+ EXPECT_TRUE(found); |
+ } |
+ |
+ EXPECT_EQ(0, expected.size()); |
+} |
+ |
+TEST(TilingDataTest, iteratorNoBorderTexels) |
+{ |
+ TilingData data(gfx::Size(10, 10), gfx::Size(40, 25), false); |
+ // X border index by src coord: [0-10), [10-20), [20, 30), [30, 40) |
+ // Y border index by src coord: [0-10), [10-20), [20, 25) |
+ TestIterate(data, gfx::Rect(0, 0, 40, 25), 0, 0, 3, 2); |
+ TestIterate(data, gfx::Rect(15, 15, 8, 8), 1, 1, 2, 2); |
+ |
+ // Oversized. |
+ TestIterate(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 3, 2); |
+ TestIterate(data, gfx::Rect(-100, 20, 1000, 1), 0, 2, 3, 2); |
+ TestIterate(data, gfx::Rect(29, -100, 31, 1000), 2, 0, 3, 2); |
+ // Nonintersecting. |
+ TestIterate(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); |
+} |
+ |
+TEST(TilingDataTest, iteratorOneBorderTexel) |
+{ |
+ TilingData data(gfx::Size(10, 20), gfx::Size(25, 45), true); |
+ // X border index by src coord: [0-10), [8-18), [16-25) |
+ // Y border index by src coord: [0-20), [18-38), [36-45) |
+ TestIterate(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2); |
+ TestIterate(data, gfx::Rect(18, 19, 3, 17), 2, 0, 2, 1); |
+ TestIterate(data, gfx::Rect(10, 20, 6, 16), 1, 1, 1, 1); |
+ TestIterate(data, gfx::Rect(9, 19, 8, 18), 0, 0, 2, 2); |
+ |
+ // Oversized. |
+ TestIterate(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2); |
+ TestIterate(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1); |
+ TestIterate(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2); |
+ // Nonintersecting. |
+ TestIterate(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); |
+} |
+ |
+TEST(TilingDataTest, iteratorManyBorderTexels) |
+{ |
+ TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); |
+ // X border index by src coord: [0-50), [10-60), [20-65) |
+ // Y border index by src coord: [0-60), [20-80), [40-100), [60-110) |
+ TestIterate(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3); |
+ TestIterate(data, gfx::Rect(50, 60, 15, 65), 1, 1, 2, 3); |
+ TestIterate(data, gfx::Rect(60, 30, 2, 10), 2, 0, 2, 1); |
+ |
+ // Oversized. |
+ TestIterate(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3); |
+ TestIterate(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0); |
+ TestIterate(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 1, 3); |
+ // Nonintersecting. |
+ TestIterate(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1); |
+} |
+ |
+TEST(TilingDataTest, iteratorOneTile) |
+{ |
+ TilingData no_border(gfx::Size(1000, 1000), gfx::Size(30, 40), false); |
+ TestIterate(no_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); |
+ TestIterate(no_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); |
+ TestIterate(no_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); |
+ |
+ TilingData one_border(gfx::Size(1000, 1000), gfx::Size(30, 40), true); |
+ TestIterate(one_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); |
+ TestIterate(one_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); |
+ TestIterate(one_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); |
+ |
+ TilingData big_border(gfx::Size(1000, 1000), gfx::Size(30, 40), 50); |
+ TestIterate(big_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); |
+ TestIterate(big_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); |
+ TestIterate(big_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); |
+} |
+ |
+TEST(TilingDataTest, iteratorNoTiles) |
+{ |
+ TilingData data(gfx::Size(100, 100), gfx::Size(), false); |
+ TestIterate(data, gfx::Rect(0, 0, 100, 100), 0, 0, -1, -1); |
+} |
+ |
} // namespace |
} // namespace cc |