diff options
author | ernstm@chromium.org <ernstm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-16 02:54:48 +0000 |
---|---|---|
committer | ernstm@chromium.org <ernstm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-16 02:54:48 +0000 |
commit | 4c159895cd87d43f24d94954d357686f0fae7106 (patch) | |
tree | b005206a7ca1d61456fe7d0d14912008c0fce84c /cc/base | |
parent | b8c35dd9b9045200f23e4162c3449081b9693cdb (diff) | |
download | chromium_src-4c159895cd87d43f24d94954d357686f0fae7106.zip chromium_src-4c159895cd87d43f24d94954d357686f0fae7106.tar.gz chromium_src-4c159895cd87d43f24d94954d357686f0fae7106.tar.bz2 |
cc: Give TilingData a Rect instead of a Size
This patch changes the assumption that the tiling covers the entire layer. It
can now cover an arbitray sub-rect, called the tiling_rect. This will be used
to implement viewport tiling in a separate patch.
R=enne@chromium.org
BUG=362668
Review URL: https://codereview.chromium.org/235753002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264083 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/base')
-rw-r--r-- | cc/base/tiling_data.cc | 118 | ||||
-rw-r--r-- | cc/base/tiling_data.h | 22 | ||||
-rw-r--r-- | cc/base/tiling_data_unittest.cc | 3314 |
3 files changed, 2535 insertions, 919 deletions
diff --git a/cc/base/tiling_data.cc b/cc/base/tiling_data.cc index 7573ec3..af581ff 100644 --- a/cc/base/tiling_data.cc +++ b/cc/base/tiling_data.cc @@ -28,28 +28,26 @@ TilingData::TilingData() RecomputeNumTiles(); } -TilingData::TilingData( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels) +TilingData::TilingData(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels) : max_texture_size_(max_texture_size), - total_size_(total_size), + tiling_rect_(tiling_rect), border_texels_(has_border_texels ? 1 : 0) { RecomputeNumTiles(); } -TilingData::TilingData( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - int border_texels) +TilingData::TilingData(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + int border_texels) : max_texture_size_(max_texture_size), - total_size_(total_size), + tiling_rect_(tiling_rect), border_texels_(border_texels) { RecomputeNumTiles(); } -void TilingData::SetTotalSize(const gfx::Size& total_size) { - total_size_ = total_size; +void TilingData::SetTilingRect(const gfx::Rect& tiling_rect) { + tiling_rect_ = tiling_rect; RecomputeNumTiles(); } @@ -72,6 +70,8 @@ int TilingData::TileXIndexFromSrcCoord(int src_position) const { if (num_tiles_x_ <= 1) return 0; + src_position -= tiling_rect_.x(); + DCHECK_GT(max_texture_size_.width() - 2 * border_texels_, 0); int x = (src_position - border_texels_) / (max_texture_size_.width() - 2 * border_texels_); @@ -82,6 +82,8 @@ int TilingData::TileYIndexFromSrcCoord(int src_position) const { if (num_tiles_y_ <= 1) return 0; + src_position -= tiling_rect_.y(); + DCHECK_GT(max_texture_size_.height() - 2 * border_texels_, 0); int y = (src_position - border_texels_) / (max_texture_size_.height() - 2 * border_texels_); @@ -92,6 +94,8 @@ int TilingData::FirstBorderTileXIndexFromSrcCoord(int src_position) const { if (num_tiles_x_ <= 1) return 0; + src_position -= tiling_rect_.x(); + DCHECK_GT(max_texture_size_.width() - 2 * border_texels_, 0); int inner_tile_size = max_texture_size_.width() - 2 * border_texels_; int x = (src_position - 2 * border_texels_) / inner_tile_size; @@ -102,6 +106,8 @@ int TilingData::FirstBorderTileYIndexFromSrcCoord(int src_position) const { if (num_tiles_y_ <= 1) return 0; + src_position -= tiling_rect_.y(); + DCHECK_GT(max_texture_size_.height() - 2 * border_texels_, 0); int inner_tile_size = max_texture_size_.height() - 2 * border_texels_; int y = (src_position - 2 * border_texels_) / inner_tile_size; @@ -112,6 +118,8 @@ int TilingData::LastBorderTileXIndexFromSrcCoord(int src_position) const { if (num_tiles_x_ <= 1) return 0; + src_position -= tiling_rect_.x(); + DCHECK_GT(max_texture_size_.width() - 2 * border_texels_, 0); int inner_tile_size = max_texture_size_.width() - 2 * border_texels_; int x = src_position / inner_tile_size; @@ -122,6 +130,8 @@ int TilingData::LastBorderTileYIndexFromSrcCoord(int src_position) const { if (num_tiles_y_ <= 1) return 0; + src_position -= tiling_rect_.y(); + DCHECK_GT(max_texture_size_.height() - 2 * border_texels_, 0); int inner_tile_size = max_texture_size_.height() - 2 * border_texels_; int y = src_position / inner_tile_size; @@ -132,38 +142,36 @@ gfx::Rect TilingData::TileBounds(int i, int j) const { AssertTile(i, j); int max_texture_size_x = max_texture_size_.width() - 2 * border_texels_; int max_texture_size_y = max_texture_size_.height() - 2 * border_texels_; - int total_size_x = total_size_.width(); - int total_size_y = total_size_.height(); - int lo_x = max_texture_size_x * i; + int lo_x = tiling_rect_.x() + max_texture_size_x * i; if (i != 0) lo_x += border_texels_; - int lo_y = max_texture_size_y * j; + int lo_y = tiling_rect_.y() + max_texture_size_y * j; if (j != 0) lo_y += border_texels_; - int hi_x = max_texture_size_x * (i + 1) + border_texels_; + int hi_x = tiling_rect_.x() + max_texture_size_x * (i + 1) + border_texels_; if (i + 1 == num_tiles_x_) hi_x += border_texels_; - int hi_y = max_texture_size_y * (j + 1) + border_texels_; + int hi_y = tiling_rect_.y() + max_texture_size_y * (j + 1) + border_texels_; if (j + 1 == num_tiles_y_) hi_y += border_texels_; - hi_x = std::min(hi_x, total_size_x); - hi_y = std::min(hi_y, total_size_y); + hi_x = std::min(hi_x, tiling_rect_.right()); + hi_y = std::min(hi_y, tiling_rect_.bottom()); int x = lo_x; int y = lo_y; int width = hi_x - lo_x; int height = hi_y - lo_y; - DCHECK_GE(x, 0); - DCHECK_GE(y, 0); + DCHECK_GE(x, tiling_rect_.x()); + DCHECK_GE(y, tiling_rect_.y()); DCHECK_GE(width, 0); DCHECK_GE(height, 0); - DCHECK_LE(x, total_size_.width()); - DCHECK_LE(y, total_size_.height()); + DCHECK_LE(x, tiling_rect_.right()); + DCHECK_LE(y, tiling_rect_.bottom()); return gfx::Rect(x, y, width, height); } @@ -171,28 +179,26 @@ gfx::Rect TilingData::TileBoundsWithBorder(int i, int j) const { AssertTile(i, j); int max_texture_size_x = max_texture_size_.width() - 2 * border_texels_; int max_texture_size_y = max_texture_size_.height() - 2 * border_texels_; - int total_size_x = total_size_.width(); - int total_size_y = total_size_.height(); - int lo_x = max_texture_size_x * i; - int lo_y = max_texture_size_y * j; + int lo_x = tiling_rect_.x() + max_texture_size_x * i; + int lo_y = tiling_rect_.y() + max_texture_size_y * j; int hi_x = lo_x + max_texture_size_x + 2 * border_texels_; int hi_y = lo_y + max_texture_size_y + 2 * border_texels_; - hi_x = std::min(hi_x, total_size_x); - hi_y = std::min(hi_y, total_size_y); + hi_x = std::min(hi_x, tiling_rect_.right()); + hi_y = std::min(hi_y, tiling_rect_.bottom()); int x = lo_x; int y = lo_y; int width = hi_x - lo_x; int height = hi_y - lo_y; - DCHECK_GE(x, 0); - DCHECK_GE(y, 0); + DCHECK_GE(x, tiling_rect_.x()); + DCHECK_GE(y, tiling_rect_.y()); DCHECK_GE(width, 0); DCHECK_GE(height, 0); - DCHECK_LE(x, total_size_.width()); - DCHECK_LE(y, total_size_.height()); + DCHECK_LE(x, tiling_rect_.right()); + DCHECK_LE(y, tiling_rect_.bottom()); return gfx::Rect(x, y, width, height); } @@ -204,6 +210,8 @@ int TilingData::TilePositionX(int x_index) const { if (x_index != 0) pos += border_texels_; + pos += tiling_rect_.x(); + return pos; } @@ -215,6 +223,8 @@ int TilingData::TilePositionY(int y_index) const { if (y_index != 0) pos += border_texels_; + pos += tiling_rect_.y(); + return pos; } @@ -223,13 +233,13 @@ int TilingData::TileSizeX(int x_index) const { DCHECK_LT(x_index, num_tiles_x_); if (!x_index && num_tiles_x_ == 1) - return total_size_.width(); + return tiling_rect_.width(); if (!x_index && num_tiles_x_ > 1) return max_texture_size_.width() - border_texels_; if (x_index < num_tiles_x_ - 1) return max_texture_size_.width() - 2 * border_texels_; if (x_index == num_tiles_x_ - 1) - return total_size_.width() - TilePositionX(x_index); + return tiling_rect_.right() - TilePositionX(x_index); NOTREACHED(); return 0; @@ -240,13 +250,13 @@ int TilingData::TileSizeY(int y_index) const { DCHECK_LT(y_index, num_tiles_y_); if (!y_index && num_tiles_y_ == 1) - return total_size_.height(); + return tiling_rect_.height(); if (!y_index && num_tiles_y_ > 1) return max_texture_size_.height() - border_texels_; if (y_index < num_tiles_y_ - 1) return max_texture_size_.height() - 2 * border_texels_; if (y_index == num_tiles_y_ - 1) - return total_size_.height() - TilePositionY(y_index); + return tiling_rect_.bottom() - TilePositionY(y_index); NOTREACHED(); return 0; @@ -261,9 +271,9 @@ gfx::Vector2d TilingData::TextureOffset(int x_index, int y_index) const { void TilingData::RecomputeNumTiles() { num_tiles_x_ = ComputeNumTiles( - max_texture_size_.width(), total_size_.width(), border_texels_); + max_texture_size_.width(), tiling_rect_.width(), border_texels_); num_tiles_y_ = ComputeNumTiles( - max_texture_size_.height(), total_size_.height(), border_texels_); + max_texture_size_.height(), tiling_rect_.height(), border_texels_); } TilingData::BaseIterator::BaseIterator(const TilingData* tiling_data) @@ -284,7 +294,7 @@ TilingData::Iterator::Iterator(const TilingData* tiling_data, } gfx::Rect rect(tiling_rect); - rect.Intersect(gfx::Rect(tiling_data_->total_size())); + rect.Intersect(tiling_data_->tiling_rect()); gfx::Rect top_left_tile; if (include_borders) { @@ -341,11 +351,10 @@ TilingData::DifferenceIterator::DifferenceIterator( return; } - gfx::Rect bounds(tiling_data_->total_size()); gfx::Rect consider(consider_rect); gfx::Rect ignore(ignore_rect); - consider.Intersect(bounds); - ignore.Intersect(bounds); + consider.Intersect(tiling_data_->tiling_rect()); + ignore.Intersect(tiling_data_->tiling_rect()); if (consider.IsEmpty()) { done(); return; @@ -449,12 +458,11 @@ TilingData::SpiralDifferenceIterator::SpiralDifferenceIterator( return; } - gfx::Rect bounds(tiling_data_->total_size()); gfx::Rect consider(consider_rect); gfx::Rect ignore(ignore_rect); gfx::Rect center(center_rect); - consider.Intersect(bounds); - ignore.Intersect(bounds); + consider.Intersect(tiling_data_->tiling_rect()); + ignore.Intersect(tiling_data_->tiling_rect()); if (consider.IsEmpty()) { done(); return; @@ -491,18 +499,18 @@ TilingData::SpiralDifferenceIterator::SpiralDifferenceIterator( // Determine around left, such that it is between -1 and num_tiles_x. int around_left = 0; - if (center.x() < 0 || center.IsEmpty()) + if (center.x() < tiling_data->tiling_rect().x() || center.IsEmpty()) around_left = -1; - else if (center.x() > tiling_data->total_size().width()) + else if (center.x() > tiling_data->tiling_rect().right()) around_left = tiling_data->num_tiles_x(); else around_left = tiling_data->FirstBorderTileXIndexFromSrcCoord(center.x()); // Determine around top, such that it is between -1 and num_tiles_y. int around_top = 0; - if (center.y() < 0 || center.IsEmpty()) + if (center.y() < tiling_data->tiling_rect().y() || center.IsEmpty()) around_top = -1; - else if (center.y() > tiling_data->total_size().height()) + else if (center.y() > tiling_data->tiling_rect().bottom()) around_top = tiling_data->num_tiles_y(); else around_top = tiling_data->FirstBorderTileYIndexFromSrcCoord(center.y()); @@ -510,9 +518,9 @@ TilingData::SpiralDifferenceIterator::SpiralDifferenceIterator( // Determine around right, such that it is between -1 and num_tiles_x. int right_src_coord = center.right() - 1; int around_right = 0; - if (right_src_coord < 0 || center.IsEmpty()) { + if (right_src_coord < tiling_data->tiling_rect().x() || center.IsEmpty()) { around_right = -1; - } else if (right_src_coord > tiling_data->total_size().width()) { + } else if (right_src_coord > tiling_data->tiling_rect().right()) { around_right = tiling_data->num_tiles_x(); } else { around_right = @@ -522,9 +530,9 @@ TilingData::SpiralDifferenceIterator::SpiralDifferenceIterator( // Determine around bottom, such that it is between -1 and num_tiles_y. int bottom_src_coord = center.bottom() - 1; int around_bottom = 0; - if (bottom_src_coord < 0 || center.IsEmpty()) { + if (bottom_src_coord < tiling_data->tiling_rect().y() || center.IsEmpty()) { around_bottom = -1; - } else if (bottom_src_coord > tiling_data->total_size().height()) { + } else if (bottom_src_coord > tiling_data->tiling_rect().bottom()) { around_bottom = tiling_data->num_tiles_y(); } else { around_bottom = diff --git a/cc/base/tiling_data.h b/cc/base/tiling_data.h index d885c9b..27ec034 100644 --- a/cc/base/tiling_data.h +++ b/cc/base/tiling_data.h @@ -22,17 +22,15 @@ namespace cc { class CC_EXPORT TilingData { public: TilingData(); - TilingData( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels); - TilingData( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - int border_texels); - - gfx::Size total_size() const { return total_size_; } - void SetTotalSize(const gfx::Size& total_size); + TilingData(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels); + TilingData(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + int border_texels); + + gfx::Rect tiling_rect() const { return tiling_rect_; } + void SetTilingRect(const gfx::Rect& tiling_rect); gfx::Size max_texture_size() const { return max_texture_size_; } void SetMaxTextureSize(const gfx::Size& max_texture_size); @@ -193,7 +191,7 @@ class CC_EXPORT TilingData { void RecomputeNumTiles(); gfx::Size max_texture_size_; - gfx::Size total_size_; + gfx::Rect tiling_rect_; int border_texels_; // These are computed values. diff --git a/cc/base/tiling_data_unittest.cc b/cc/base/tiling_data_unittest.cc index 8fb6442..1563b02 100644 --- a/cc/base/tiling_data_unittest.cc +++ b/cc/base/tiling_data_unittest.cc @@ -13,11 +13,10 @@ namespace cc { namespace { -int NumTiles( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int NumTiles(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); int num_tiles = tiling.num_tiles_x() * tiling.num_tiles_y(); // Assert no overflow. @@ -28,700 +27,2048 @@ int NumTiles( return num_tiles; } -int XIndex( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int x_coord) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int XIndex(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int x_coord) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.TileXIndexFromSrcCoord(x_coord); } -int YIndex( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int y_coord) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int YIndex(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int y_coord) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.TileYIndexFromSrcCoord(y_coord); } -int MinBorderXIndex( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int x_coord) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int MinBorderXIndex(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int x_coord) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.FirstBorderTileXIndexFromSrcCoord(x_coord); } -int MinBorderYIndex( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int y_coord) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int MinBorderYIndex(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int y_coord) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.FirstBorderTileYIndexFromSrcCoord(y_coord); } -int MaxBorderXIndex( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int x_coord) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int MaxBorderXIndex(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int x_coord) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.LastBorderTileXIndexFromSrcCoord(x_coord); } -int MaxBorderYIndex( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int y_coord) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int MaxBorderYIndex(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int y_coord) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.LastBorderTileYIndexFromSrcCoord(y_coord); } -int PosX( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int x_index) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int PosX(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int x_index) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.TilePositionX(x_index); } -int PosY( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int y_index) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int PosY(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int y_index) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.TilePositionY(y_index); } -int SizeX( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int x_index) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int SizeX(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int x_index) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.TileSizeX(x_index); } -int SizeY( - const gfx::Size& max_texture_size, - const gfx::Size& total_size, - bool has_border_texels, - int y_index) { - TilingData tiling(max_texture_size, total_size, has_border_texels); +int SizeY(const gfx::Size& max_texture_size, + const gfx::Rect& tiling_rect, + bool has_border_texels, + int y_index) { + TilingData tiling(max_texture_size, tiling_rect, has_border_texels); return tiling.TileSizeY(y_index); } -TEST(TilingDataTest, NumTiles_NoTiling) { - EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(15, 15), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(1, 16), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(15, 15), gfx::Size(15, 15), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(32, 16), gfx::Size(32, 16), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(32, 16), gfx::Size(32, 16), true)); +class TilingDataTest : public ::testing::TestWithParam<gfx::Point> {}; + +TEST_P(TilingDataTest, NumTiles_NoTiling) { + gfx::Point origin = GetParam(); + + EXPECT_EQ( + 1, + NumTiles(gfx::Size(16, 16), gfx::Rect(origin, gfx::Size(16, 16)), false)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(16, 16), gfx::Rect(origin, gfx::Size(15, 15)), true)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(16, 16), gfx::Rect(origin, gfx::Size(16, 16)), true)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(16, 16), gfx::Rect(origin, gfx::Size(1, 16)), false)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(15, 15), gfx::Rect(origin, gfx::Size(15, 15)), true)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(32, 16), gfx::Rect(origin, gfx::Size(32, 16)), false)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(32, 16), gfx::Rect(origin, gfx::Size(32, 16)), true)); } -TEST(TilingDataTest, NumTiles_TilingNoBorders) { - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 0), false)); - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(4, 0), false)); - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 4), false)); - EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(4, 0), false)); - EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(0, 4), false)); - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(1, 1), false)); - - EXPECT_EQ(1, NumTiles(gfx::Size(1, 1), gfx::Size(1, 1), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(1, 1), gfx::Size(1, 2), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(1, 1), gfx::Size(2, 1), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 1), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 2), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 1), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 2), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(3, 3), false)); - - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(1, 4), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(2, 4), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(3, 4), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(4, 4), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(5, 4), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(6, 4), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(7, 4), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(8, 4), false)); - EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(9, 4), false)); - EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(10, 4), false)); - EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(11, 4), false)); - - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(1, 5), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(2, 5), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(3, 5), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(4, 5), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(5, 5), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(6, 5), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(7, 5), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(8, 5), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(9, 5), false)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(10, 5), false)); - EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(11, 5), false)); - - EXPECT_EQ(1, NumTiles(gfx::Size(16, 16), gfx::Size(16, 16), false)); - EXPECT_EQ(1, NumTiles(gfx::Size(17, 17), gfx::Size(16, 16), false)); - EXPECT_EQ(4, NumTiles(gfx::Size(15, 15), gfx::Size(16, 16), false)); - EXPECT_EQ(4, NumTiles(gfx::Size(8, 8), gfx::Size(16, 16), false)); - EXPECT_EQ(6, NumTiles(gfx::Size(8, 8), gfx::Size(17, 16), false)); - - EXPECT_EQ(8, NumTiles(gfx::Size(5, 8), gfx::Size(17, 16), false)); +TEST_P(TilingDataTest, NumTiles_TilingNoBorders) { + gfx::Point origin = GetParam(); + + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(0, 0)), false)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(4, 0)), false)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(0, 4)), false)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(4, 0)), false)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(0, 4)), false)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(1, 1)), false)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(1, 1), gfx::Rect(origin, gfx::Size(1, 1)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(1, 1), gfx::Rect(origin, gfx::Size(1, 2)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(1, 1), gfx::Rect(origin, gfx::Size(2, 1)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(1, 1)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(1, 2)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(2, 1)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(2, 2)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 3)), false)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(1, 4)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(2, 4)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(3, 4)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(4, 4)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(5, 4)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(6, 4)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(7, 4)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(8, 4)), false)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(9, 4)), false)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(10, 4)), false)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(11, 4)), false)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(1, 5)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(2, 5)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(3, 5)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(4, 5)), false)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 5)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(7, 5)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 5)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(9, 5)), false)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 5)), false)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(11, 5)), false)); + + EXPECT_EQ( + 1, + NumTiles(gfx::Size(16, 16), gfx::Rect(origin, gfx::Size(16, 16)), false)); + EXPECT_EQ( + 1, + NumTiles(gfx::Size(17, 17), gfx::Rect(origin, gfx::Size(16, 16)), false)); + EXPECT_EQ( + 4, + NumTiles(gfx::Size(15, 15), gfx::Rect(origin, gfx::Size(16, 16)), false)); + EXPECT_EQ( + 4, + NumTiles(gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(16, 16)), false)); + EXPECT_EQ( + 6, + NumTiles(gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(17, 16)), false)); + + EXPECT_EQ( + 8, + NumTiles(gfx::Size(5, 8), gfx::Rect(origin, gfx::Size(17, 16)), false)); } -TEST(TilingDataTest, NumTiles_TilingWithBorders) { - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 0), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(4, 0), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(0, 4), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(4, 0), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(4, 4), gfx::Size(0, 4), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(0, 0), gfx::Size(1, 1), true)); - - EXPECT_EQ(1, NumTiles(gfx::Size(1, 1), gfx::Size(1, 1), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(1, 1), gfx::Size(1, 2), true)); - EXPECT_EQ(0, NumTiles(gfx::Size(1, 1), gfx::Size(2, 1), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 1), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(1, 2), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 1), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(2, 2), gfx::Size(2, 2), true)); - - EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(1, 3), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(2, 3), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(3, 3), gfx::Size(3, 3), true)); - EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Size(4, 3), true)); - EXPECT_EQ(3, NumTiles(gfx::Size(3, 3), gfx::Size(5, 3), true)); - EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Size(6, 3), true)); - EXPECT_EQ(5, NumTiles(gfx::Size(3, 3), gfx::Size(7, 3), true)); - - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(1, 4), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(2, 4), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(3, 4), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(4, 4), gfx::Size(4, 4), true)); - EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(5, 4), true)); - EXPECT_EQ(2, NumTiles(gfx::Size(4, 4), gfx::Size(6, 4), true)); - EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(7, 4), true)); - EXPECT_EQ(3, NumTiles(gfx::Size(4, 4), gfx::Size(8, 4), true)); - EXPECT_EQ(4, NumTiles(gfx::Size(4, 4), gfx::Size(9, 4), true)); - EXPECT_EQ(4, NumTiles(gfx::Size(4, 4), gfx::Size(10, 4), true)); - EXPECT_EQ(5, NumTiles(gfx::Size(4, 4), gfx::Size(11, 4), true)); - - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(1, 5), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(2, 5), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(3, 5), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(4, 5), true)); - EXPECT_EQ(1, NumTiles(gfx::Size(5, 5), gfx::Size(5, 5), true)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(6, 5), true)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(7, 5), true)); - EXPECT_EQ(2, NumTiles(gfx::Size(5, 5), gfx::Size(8, 5), true)); - EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(9, 5), true)); - EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(10, 5), true)); - EXPECT_EQ(3, NumTiles(gfx::Size(5, 5), gfx::Size(11, 5), true)); - - EXPECT_EQ(30, NumTiles(gfx::Size(8, 5), gfx::Size(16, 32), true)); +TEST_P(TilingDataTest, NumTiles_TilingWithBorders) { + gfx::Point origin = GetParam(); + + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(0, 0)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(4, 0)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(0, 4)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(4, 0)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(0, 4)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(0, 0), gfx::Rect(origin, gfx::Size(1, 1)), true)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(1, 1), gfx::Rect(origin, gfx::Size(1, 1)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(1, 1), gfx::Rect(origin, gfx::Size(1, 2)), true)); + EXPECT_EQ( + 0, NumTiles(gfx::Size(1, 1), gfx::Rect(origin, gfx::Size(2, 1)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(1, 1)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(1, 2)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(2, 1)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(2, 2), gfx::Rect(origin, gfx::Size(2, 2)), true)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 3)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(2, 3)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 3)), true)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(4, 3)), true)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(5, 3)), true)); + EXPECT_EQ( + 4, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 3)), true)); + EXPECT_EQ( + 5, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(7, 3)), true)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(1, 4)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(2, 4)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(3, 4)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(4, 4)), true)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(5, 4)), true)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(6, 4)), true)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(7, 4)), true)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(8, 4)), true)); + EXPECT_EQ( + 4, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(9, 4)), true)); + EXPECT_EQ( + 4, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(10, 4)), true)); + EXPECT_EQ( + 5, NumTiles(gfx::Size(4, 4), gfx::Rect(origin, gfx::Size(11, 4)), true)); + + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(1, 5)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(2, 5)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(3, 5)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(4, 5)), true)); + EXPECT_EQ( + 1, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), true)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 5)), true)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(7, 5)), true)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 5)), true)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(9, 5)), true)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 5)), true)); + EXPECT_EQ( + 3, NumTiles(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(11, 5)), true)); + + EXPECT_EQ( + 30, + NumTiles(gfx::Size(8, 5), gfx::Rect(origin, gfx::Size(16, 32)), true)); } -TEST(TilingDataTest, TileXIndexFromSrcCoord) { - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); - EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); - EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); - EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); - EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); - EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); - EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); - - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); - EXPECT_EQ(2, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); - EXPECT_EQ(3, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); - EXPECT_EQ(4, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); - EXPECT_EQ(5, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); - EXPECT_EQ(6, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); - EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); - EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); - EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); - EXPECT_EQ(7, XIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); - - EXPECT_EQ(0, XIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); - - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); - - EXPECT_EQ(0, XIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); - - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); - EXPECT_EQ(0, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); - EXPECT_EQ(1, XIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); +TEST_P(TilingDataTest, TileXIndexFromSrcCoord) { + gfx::Point origin = GetParam(); + + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 2)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 3)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 4)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 5)); + EXPECT_EQ(2, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 6)); + EXPECT_EQ(2, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 7)); + EXPECT_EQ(2, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 8)); + EXPECT_EQ(3, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 9)); + EXPECT_EQ(3, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 10)); + EXPECT_EQ(3, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 11)); + + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x())); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 1)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 2)); + EXPECT_EQ(2, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 3)); + EXPECT_EQ(3, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 4)); + EXPECT_EQ(4, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 5)); + EXPECT_EQ(5, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 6)); + EXPECT_EQ(6, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 7)); + EXPECT_EQ(7, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 8)); + EXPECT_EQ(7, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 9)); + EXPECT_EQ(7, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 10)); + EXPECT_EQ(7, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 11)); + + EXPECT_EQ(0, + XIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 2)); + + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 2)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 3)); + + EXPECT_EQ(0, + XIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 2)); + + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 1)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 2)); + EXPECT_EQ(1, + XIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 3)); } -TEST(TilingDataTest, FirstBorderTileXIndexFromSrcCoord) { - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); - EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); - EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); - EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); - EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); - EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); - EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); - EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); - EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); - EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); - - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); - EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); - EXPECT_EQ(2, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); - EXPECT_EQ(3, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); - EXPECT_EQ(4, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); - EXPECT_EQ(5, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); - EXPECT_EQ(6, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); - EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); - EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); - EXPECT_EQ(7, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); - - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); - - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); - EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); - - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); - - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); - EXPECT_EQ(0, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); - EXPECT_EQ(1, MinBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); +TEST_P(TilingDataTest, FirstBorderTileXIndexFromSrcCoord) { + gfx::Point origin = GetParam(); + + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 2)); + EXPECT_EQ(1, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 3)); + EXPECT_EQ(1, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 4)); + EXPECT_EQ(1, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 5)); + EXPECT_EQ(2, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 6)); + EXPECT_EQ(2, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 7)); + EXPECT_EQ(2, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 8)); + EXPECT_EQ(3, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 9)); + EXPECT_EQ(3, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 10)); + EXPECT_EQ(3, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 11)); + + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 2)); + EXPECT_EQ(1, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 3)); + EXPECT_EQ(2, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 4)); + EXPECT_EQ(3, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 5)); + EXPECT_EQ(4, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 6)); + EXPECT_EQ(5, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 7)); + EXPECT_EQ(6, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 8)); + EXPECT_EQ(7, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 9)); + EXPECT_EQ(7, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 10)); + EXPECT_EQ(7, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 11)); + + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 2)); + + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 2)); + EXPECT_EQ(1, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 3)); + + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 2)); + + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 2)); + EXPECT_EQ(1, + MinBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 3)); } -TEST(TilingDataTest, LastBorderTileXIndexFromSrcCoord) { - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); - EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); - EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); - EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); - EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); - EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); - EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); - - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(2, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); - EXPECT_EQ(3, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); - EXPECT_EQ(4, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); - EXPECT_EQ(5, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); - EXPECT_EQ(6, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); - EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); - EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); - EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); - EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); - EXPECT_EQ(7, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); - - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); - - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 1)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 2)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), false, 3)); - - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); - - EXPECT_EQ(0, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 0)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 1)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 2)); - EXPECT_EQ(1, MaxBorderXIndex(gfx::Size(3, 3), gfx::Size(4, 3), true, 3)); +TEST_P(TilingDataTest, LastBorderTileXIndexFromSrcCoord) { + gfx::Point origin = GetParam(); + + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 2)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 3)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 4)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 5)); + EXPECT_EQ(2, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 6)); + EXPECT_EQ(2, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 7)); + EXPECT_EQ(2, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 8)); + EXPECT_EQ(3, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 9)); + EXPECT_EQ(3, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 10)); + EXPECT_EQ(3, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.x() + 11)); + + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 0)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 1)); + EXPECT_EQ(2, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 2)); + EXPECT_EQ(3, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 3)); + EXPECT_EQ(4, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 4)); + EXPECT_EQ(5, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 5)); + EXPECT_EQ(6, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 6)); + EXPECT_EQ(7, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 7)); + EXPECT_EQ(7, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 8)); + EXPECT_EQ(7, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 9)); + EXPECT_EQ(7, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 10)); + EXPECT_EQ(7, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.x() + 11)); + + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.x() + 2)); + + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 1)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 2)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + false, + origin.x() + 3)); + + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 0)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 1)); + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.x() + 2)); + + EXPECT_EQ(0, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 0)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 1)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 2)); + EXPECT_EQ(1, + MaxBorderXIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(4, 3)), + true, + origin.x() + 3)); } -TEST(TilingDataTest, TileYIndexFromSrcCoord) { - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); - EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); - EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); - EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); - EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); - EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); - EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); - - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); - EXPECT_EQ(2, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); - EXPECT_EQ(3, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); - EXPECT_EQ(4, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); - EXPECT_EQ(5, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); - EXPECT_EQ(6, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); - EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); - EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); - EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); - EXPECT_EQ(7, YIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); - - EXPECT_EQ(0, YIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); - - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); - - EXPECT_EQ(0, YIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); - - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); - EXPECT_EQ(0, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); - EXPECT_EQ(1, YIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); +TEST_P(TilingDataTest, TileYIndexFromSrcCoord) { + gfx::Point origin = GetParam(); + + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 2)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 3)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 4)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 5)); + EXPECT_EQ(2, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 6)); + EXPECT_EQ(2, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 7)); + EXPECT_EQ(2, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 8)); + EXPECT_EQ(3, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 9)); + EXPECT_EQ(3, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 10)); + EXPECT_EQ(3, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 11)); + + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 1)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 2)); + EXPECT_EQ(2, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 3)); + EXPECT_EQ(3, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 4)); + EXPECT_EQ(4, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 5)); + EXPECT_EQ(5, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 6)); + EXPECT_EQ(6, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 7)); + EXPECT_EQ(7, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 8)); + EXPECT_EQ(7, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 9)); + EXPECT_EQ(7, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 10)); + EXPECT_EQ(7, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 11)); + + EXPECT_EQ(0, + YIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 2)); + + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 2)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 3)); + + EXPECT_EQ(0, + YIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 2)); + + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 1)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 2)); + EXPECT_EQ(1, + YIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 3)); } -TEST(TilingDataTest, FirstBorderTileYIndexFromSrcCoord) { - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); - EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); - EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); - EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); - EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); - EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); - EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); - EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); - EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); - EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); - - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); - EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); - EXPECT_EQ(2, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); - EXPECT_EQ(3, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); - EXPECT_EQ(4, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); - EXPECT_EQ(5, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); - EXPECT_EQ(6, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); - EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); - EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); - EXPECT_EQ(7, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); - - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); - - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); - EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); - - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); - - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); - EXPECT_EQ(0, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); - EXPECT_EQ(1, MinBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); +TEST_P(TilingDataTest, FirstBorderTileYIndexFromSrcCoord) { + gfx::Point origin = GetParam(); + + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 2)); + EXPECT_EQ(1, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 3)); + EXPECT_EQ(1, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 4)); + EXPECT_EQ(1, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 5)); + EXPECT_EQ(2, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 6)); + EXPECT_EQ(2, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 7)); + EXPECT_EQ(2, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 8)); + EXPECT_EQ(3, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 9)); + EXPECT_EQ(3, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 10)); + EXPECT_EQ(3, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 11)); + + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 2)); + EXPECT_EQ(1, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 3)); + EXPECT_EQ(2, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 4)); + EXPECT_EQ(3, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 5)); + EXPECT_EQ(4, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 6)); + EXPECT_EQ(5, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 7)); + EXPECT_EQ(6, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 8)); + EXPECT_EQ(7, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 9)); + EXPECT_EQ(7, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 10)); + EXPECT_EQ(7, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 11)); + + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 2)); + + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 2)); + EXPECT_EQ(1, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 3)); + + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 2)); + + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 2)); + EXPECT_EQ(1, + MinBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 3)); } -TEST(TilingDataTest, LastBorderTileYIndexFromSrcCoord) { - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 2)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 3)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 4)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 5)); - EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 6)); - EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 7)); - EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 8)); - EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 9)); - EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 10)); - EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), false, 11)); - - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(2, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 2)); - EXPECT_EQ(3, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 3)); - EXPECT_EQ(4, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 4)); - EXPECT_EQ(5, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 5)); - EXPECT_EQ(6, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 6)); - EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 7)); - EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 8)); - EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 9)); - EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 10)); - EXPECT_EQ(7, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(10, 10), true, 11)); - - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), false, 1)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 1)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), false, 2)); - - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 1)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 2)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), false, 3)); - - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(1, 1), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(2, 2), gfx::Size(2, 2), true, 1)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 0)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 1)); - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 3), true, 2)); - - EXPECT_EQ(0, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 0)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 1)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 2)); - EXPECT_EQ(1, MaxBorderYIndex(gfx::Size(3, 3), gfx::Size(3, 4), true, 3)); +TEST_P(TilingDataTest, LastBorderTileYIndexFromSrcCoord) { + gfx::Point origin = GetParam(); + + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 2)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 3)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 4)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 5)); + EXPECT_EQ(2, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 6)); + EXPECT_EQ(2, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 7)); + EXPECT_EQ(2, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 8)); + EXPECT_EQ(3, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 9)); + EXPECT_EQ(3, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 10)); + EXPECT_EQ(3, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + false, + origin.y() + 11)); + + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 0)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 1)); + EXPECT_EQ(2, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 2)); + EXPECT_EQ(3, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 3)); + EXPECT_EQ(4, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 4)); + EXPECT_EQ(5, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 5)); + EXPECT_EQ(6, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 6)); + EXPECT_EQ(7, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 7)); + EXPECT_EQ(7, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 8)); + EXPECT_EQ(7, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 9)); + EXPECT_EQ(7, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 10)); + EXPECT_EQ(7, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(10, 10)), + true, + origin.y() + 11)); + + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + false, + origin.y() + 2)); + + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 1)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 2)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + false, + origin.y() + 3)); + + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(1, 1), + gfx::Rect(origin, gfx::Size(1, 1)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(2, 2), + gfx::Rect(origin, gfx::Size(2, 2)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 0)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 1)); + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 3)), + true, + origin.y() + 2)); + + EXPECT_EQ(0, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 0)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 1)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 2)); + EXPECT_EQ(1, + MaxBorderYIndex(gfx::Size(3, 3), + gfx::Rect(origin, gfx::Size(3, 4)), + true, + origin.y() + 3)); } -TEST(TilingDataTest, TileSizeX) { - EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(5, 5), false, 0)); - EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(5, 5), true, 0)); - - EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), false, 0)); - EXPECT_EQ(1, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), false, 1)); - EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), true, 0)); - EXPECT_EQ(2, SizeX(gfx::Size(5, 5), gfx::Size(6, 6), true, 1)); - - EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), false, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), false, 1)); - EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), true, 0)); - EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(8, 8), true, 1)); - - EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(5, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(10, 10), true, 2)); - - EXPECT_EQ(4, SizeX(gfx::Size(5, 5), gfx::Size(11, 11), true, 2)); - EXPECT_EQ(3, SizeX(gfx::Size(5, 5), gfx::Size(12, 12), true, 2)); - - EXPECT_EQ(3, SizeX(gfx::Size(5, 9), gfx::Size(12, 17), true, 2)); +TEST_P(TilingDataTest, TileSizeX) { + gfx::Point origin = GetParam(); + + EXPECT_EQ( + 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), false, 0)); + EXPECT_EQ( + 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), true, 0)); + + EXPECT_EQ( + 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), false, 0)); + EXPECT_EQ( + 1, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), false, 1)); + EXPECT_EQ( + 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), true, 0)); + EXPECT_EQ( + 2, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), true, 1)); + + EXPECT_EQ( + 5, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), false, 0)); + EXPECT_EQ( + 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), false, 1)); + EXPECT_EQ( + 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), true, 0)); + EXPECT_EQ( + 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), true, 1)); + + EXPECT_EQ( + 5, + SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), false, 0)); + EXPECT_EQ( + 5, + SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), false, 1)); + EXPECT_EQ( + 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), true, 0)); + EXPECT_EQ( + 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), true, 1)); + EXPECT_EQ( + 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), true, 2)); + + EXPECT_EQ( + 4, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(11, 11)), true, 2)); + EXPECT_EQ( + 3, SizeX(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(12, 12)), true, 2)); + + EXPECT_EQ( + 3, SizeX(gfx::Size(5, 9), gfx::Rect(origin, gfx::Size(12, 17)), true, 2)); } -TEST(TilingDataTest, TileSizeY) { - EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(5, 5), false, 0)); - EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(5, 5), true, 0)); - - EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), false, 0)); - EXPECT_EQ(1, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), false, 1)); - EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), true, 0)); - EXPECT_EQ(2, SizeY(gfx::Size(5, 5), gfx::Size(6, 6), true, 1)); - - EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), false, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), false, 1)); - EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), true, 0)); - EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(8, 8), true, 1)); - - EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), false, 0)); - EXPECT_EQ(5, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), false, 1)); - EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), true, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), true, 1)); - EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(10, 10), true, 2)); - - EXPECT_EQ(4, SizeY(gfx::Size(5, 5), gfx::Size(11, 11), true, 2)); - EXPECT_EQ(3, SizeY(gfx::Size(5, 5), gfx::Size(12, 12), true, 2)); - - EXPECT_EQ(3, SizeY(gfx::Size(9, 5), gfx::Size(17, 12), true, 2)); +TEST_P(TilingDataTest, TileSizeY) { + gfx::Point origin = GetParam(); + + EXPECT_EQ( + 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), false, 0)); + EXPECT_EQ( + 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), true, 0)); + + EXPECT_EQ( + 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), false, 0)); + EXPECT_EQ( + 1, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), false, 1)); + EXPECT_EQ( + 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), true, 0)); + EXPECT_EQ( + 2, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(6, 6)), true, 1)); + + EXPECT_EQ( + 5, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), false, 0)); + EXPECT_EQ( + 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), false, 1)); + EXPECT_EQ( + 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), true, 0)); + EXPECT_EQ( + 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(8, 8)), true, 1)); + + EXPECT_EQ( + 5, + SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), false, 0)); + EXPECT_EQ( + 5, + SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), false, 1)); + EXPECT_EQ( + 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), true, 0)); + EXPECT_EQ( + 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), true, 1)); + EXPECT_EQ( + 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(10, 10)), true, 2)); + + EXPECT_EQ( + 4, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(11, 11)), true, 2)); + EXPECT_EQ( + 3, SizeY(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(12, 12)), true, 2)); + + EXPECT_EQ( + 3, SizeY(gfx::Size(9, 5), gfx::Rect(origin, gfx::Size(17, 12)), true, 2)); } -TEST(TilingDataTest, TileSizeX_and_TilePositionX) { +TEST_P(TilingDataTest, TileSizeX_and_TilePositionX) { + gfx::Point origin = GetParam(); + // Single tile cases: - EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 100), false, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 100), false, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 1), false, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 1), false, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 100), false, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 100), false, 0)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(1, 100), true, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(1, 100), true, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 1), true, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 1), true, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(3, 100), true, 0)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(3, 100), true, 0)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), false, 0)); + EXPECT_EQ( + origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), false, 0)); + EXPECT_EQ( + 1, + SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 100)), false, 0)); + EXPECT_EQ( + origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 100)), false, 0)); + EXPECT_EQ( + 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 1)), false, 0)); + EXPECT_EQ( + origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 1)), false, 0)); + EXPECT_EQ( + 3, + SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 100)), false, 0)); + EXPECT_EQ( + origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 100)), false, 0)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), true, 0)); + EXPECT_EQ(origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), true, 0)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 100)), true, 0)); + EXPECT_EQ( + origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 100)), true, 0)); + EXPECT_EQ( + 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 1)), true, 0)); + EXPECT_EQ(origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 1)), true, 0)); + EXPECT_EQ( + 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 100)), true, 0)); + EXPECT_EQ( + origin.x(), + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(3, 100)), true, 0)); // Multiple tiles: // no border // positions 0, 3 - EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Size(6, 1), false)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), false, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), false, 1)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(6, 1), false, 0)); - EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Size(6, 1), false, 1)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 100), false, 0)); - EXPECT_EQ(3, SizeX(gfx::Size(3, 3), gfx::Size(6, 100), false, 1)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(6, 100), false, 0)); - EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Size(6, 100), false, 1)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), false)); + EXPECT_EQ( + 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), false, 0)); + EXPECT_EQ( + 3, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), false, 1)); + EXPECT_EQ( + origin.x() + 0, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), false, 0)); + EXPECT_EQ( + origin.x() + 3, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), false, 1)); + EXPECT_EQ( + 3, + SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 100)), false, 0)); + EXPECT_EQ( + 3, + SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 100)), false, 1)); + EXPECT_EQ( + origin.x() + 0, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 100)), false, 0)); + EXPECT_EQ( + origin.x() + 3, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 100)), false, 1)); // Multiple tiles: // with border // positions 0, 2, 3, 4 - EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Size(6, 1), true)); - EXPECT_EQ(2, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 0)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 1)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 2)); - EXPECT_EQ(2, SizeX(gfx::Size(3, 3), gfx::Size(6, 1), true, 3)); - EXPECT_EQ(0, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 0)); - EXPECT_EQ(2, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 1)); - EXPECT_EQ(3, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 2)); - EXPECT_EQ(4, PosX(gfx::Size(3, 3), gfx::Size(6, 1), true, 3)); - EXPECT_EQ(2, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 0)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 1)); - EXPECT_EQ(1, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 2)); - EXPECT_EQ(2, SizeX(gfx::Size(3, 7), gfx::Size(6, 100), true, 3)); - EXPECT_EQ(0, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 0)); - EXPECT_EQ(2, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 1)); - EXPECT_EQ(3, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 2)); - EXPECT_EQ(4, PosX(gfx::Size(3, 7), gfx::Size(6, 100), true, 3)); + EXPECT_EQ( + 4, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true)); + EXPECT_EQ( + 2, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 0)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 1)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 2)); + EXPECT_EQ( + 2, SizeX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 3)); + EXPECT_EQ(origin.x() + 0, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 0)); + EXPECT_EQ(origin.x() + 2, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 1)); + EXPECT_EQ(origin.x() + 3, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 2)); + EXPECT_EQ(origin.x() + 4, + PosX(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(6, 1)), true, 3)); + EXPECT_EQ( + 2, SizeX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 0)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 1)); + EXPECT_EQ( + 1, SizeX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 2)); + EXPECT_EQ( + 2, SizeX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 3)); + EXPECT_EQ( + origin.x() + 0, + PosX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 0)); + EXPECT_EQ( + origin.x() + 2, + PosX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 1)); + EXPECT_EQ( + origin.x() + 3, + PosX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 2)); + EXPECT_EQ( + origin.x() + 4, + PosX(gfx::Size(3, 7), gfx::Rect(origin, gfx::Size(6, 100)), true, 3)); } -TEST(TilingDataTest, TileSizeY_and_TilePositionY) { +TEST_P(TilingDataTest, TileSizeY_and_TilePositionY) { + gfx::Point origin = GetParam(); + // Single tile cases: - EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 1), false, 0)); - EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(100, 1), false, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 1), false, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 3), false, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 3), false, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 3), false, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 3), false, 0)); - EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 1), true, 0)); - EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(100, 1), true, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 1), true, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 3), true, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 3), true, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 3), true, 0)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 3), true, 0)); + EXPECT_EQ( + 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), false, 0)); + EXPECT_EQ( + origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), false, 0)); + EXPECT_EQ( + 1, + SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 1)), false, 0)); + EXPECT_EQ( + origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 1)), false, 0)); + EXPECT_EQ( + 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 3)), false, 0)); + EXPECT_EQ( + origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 3)), false, 0)); + EXPECT_EQ( + 3, + SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 3)), false, 0)); + EXPECT_EQ( + origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 3)), false, 0)); + EXPECT_EQ( + 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), true, 0)); + EXPECT_EQ(origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 1)), true, 0)); + EXPECT_EQ( + 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 1)), true, 0)); + EXPECT_EQ( + origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 1)), true, 0)); + EXPECT_EQ( + 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 3)), true, 0)); + EXPECT_EQ(origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 3)), true, 0)); + EXPECT_EQ( + 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 3)), true, 0)); + EXPECT_EQ( + origin.y(), + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 3)), true, 0)); // Multiple tiles: // no border // positions 0, 3 - EXPECT_EQ(2, NumTiles(gfx::Size(3, 3), gfx::Size(1, 6), false)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), false, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), false, 1)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 6), false, 0)); - EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Size(1, 6), false, 1)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 6), false, 0)); - EXPECT_EQ(3, SizeY(gfx::Size(3, 3), gfx::Size(100, 6), false, 1)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(100, 6), false, 0)); - EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Size(100, 6), false, 1)); + EXPECT_EQ( + 2, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), false)); + EXPECT_EQ( + 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), false, 0)); + EXPECT_EQ( + 3, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), false, 1)); + EXPECT_EQ( + origin.y() + 0, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), false, 0)); + EXPECT_EQ( + origin.y() + 3, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), false, 1)); + EXPECT_EQ( + 3, + SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 6)), false, 0)); + EXPECT_EQ( + 3, + SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 6)), false, 1)); + EXPECT_EQ( + origin.y() + 0, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 6)), false, 0)); + EXPECT_EQ( + origin.y() + 3, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(100, 6)), false, 1)); // Multiple tiles: // with border // positions 0, 2, 3, 4 - EXPECT_EQ(4, NumTiles(gfx::Size(3, 3), gfx::Size(1, 6), true)); - EXPECT_EQ(2, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 0)); - EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 1)); - EXPECT_EQ(1, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 2)); - EXPECT_EQ(2, SizeY(gfx::Size(3, 3), gfx::Size(1, 6), true, 3)); - EXPECT_EQ(0, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 0)); - EXPECT_EQ(2, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 1)); - EXPECT_EQ(3, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 2)); - EXPECT_EQ(4, PosY(gfx::Size(3, 3), gfx::Size(1, 6), true, 3)); - EXPECT_EQ(2, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 0)); - EXPECT_EQ(1, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 1)); - EXPECT_EQ(1, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 2)); - EXPECT_EQ(2, SizeY(gfx::Size(7, 3), gfx::Size(100, 6), true, 3)); - EXPECT_EQ(0, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 0)); - EXPECT_EQ(2, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 1)); - EXPECT_EQ(3, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 2)); - EXPECT_EQ(4, PosY(gfx::Size(7, 3), gfx::Size(100, 6), true, 3)); + EXPECT_EQ( + 4, NumTiles(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true)); + EXPECT_EQ( + 2, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 0)); + EXPECT_EQ( + 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 1)); + EXPECT_EQ( + 1, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 2)); + EXPECT_EQ( + 2, SizeY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 3)); + EXPECT_EQ(origin.y() + 0, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 0)); + EXPECT_EQ(origin.y() + 2, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 1)); + EXPECT_EQ(origin.y() + 3, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 2)); + EXPECT_EQ(origin.y() + 4, + PosY(gfx::Size(3, 3), gfx::Rect(origin, gfx::Size(1, 6)), true, 3)); + EXPECT_EQ( + 2, SizeY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 0)); + EXPECT_EQ( + 1, SizeY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 1)); + EXPECT_EQ( + 1, SizeY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 2)); + EXPECT_EQ( + 2, SizeY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 3)); + EXPECT_EQ( + origin.y() + 0, + PosY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 0)); + EXPECT_EQ( + origin.y() + 2, + PosY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 1)); + EXPECT_EQ( + origin.y() + 3, + PosY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 2)); + EXPECT_EQ( + origin.y() + 4, + PosY(gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(100, 6)), true, 3)); } -TEST(TilingDataTest, SetTotalSize) { - TilingData data(gfx::Size(5, 5), gfx::Size(5, 5), false); - EXPECT_EQ(5, data.total_size().width()); - EXPECT_EQ(5, data.total_size().height()); +TEST_P(TilingDataTest, SetTotalSize) { + gfx::Point origin = GetParam(); + + TilingData data(gfx::Size(5, 5), gfx::Rect(origin, gfx::Size(5, 5)), false); + EXPECT_EQ(origin.x(), data.tiling_rect().x()); + EXPECT_EQ(origin.y(), data.tiling_rect().y()); + EXPECT_EQ(5, data.tiling_rect().width()); + EXPECT_EQ(5, data.tiling_rect().height()); EXPECT_EQ(1, data.num_tiles_x()); EXPECT_EQ(5, data.TileSizeX(0)); EXPECT_EQ(1, data.num_tiles_y()); EXPECT_EQ(5, data.TileSizeY(0)); - data.SetTotalSize(gfx::Size(6, 5)); - EXPECT_EQ(6, data.total_size().width()); - EXPECT_EQ(5, data.total_size().height()); + data.SetTilingRect(gfx::Rect(36, 82, 6, 5)); + EXPECT_EQ(36, data.tiling_rect().x()); + EXPECT_EQ(82, data.tiling_rect().y()); + EXPECT_EQ(6, data.tiling_rect().width()); + EXPECT_EQ(5, data.tiling_rect().height()); EXPECT_EQ(2, data.num_tiles_x()); EXPECT_EQ(5, data.TileSizeX(0)); EXPECT_EQ(1, data.TileSizeX(1)); EXPECT_EQ(1, data.num_tiles_y()); EXPECT_EQ(5, data.TileSizeY(0)); - data.SetTotalSize(gfx::Size(5, 12)); - EXPECT_EQ(5, data.total_size().width()); - EXPECT_EQ(12, data.total_size().height()); + data.SetTilingRect(gfx::Rect(4, 22, 5, 12)); + EXPECT_EQ(4, data.tiling_rect().x()); + EXPECT_EQ(22, data.tiling_rect().y()); + EXPECT_EQ(5, data.tiling_rect().width()); + EXPECT_EQ(12, data.tiling_rect().height()); EXPECT_EQ(1, data.num_tiles_x()); EXPECT_EQ(5, data.TileSizeX(0)); EXPECT_EQ(3, data.num_tiles_y()); @@ -730,8 +2077,10 @@ TEST(TilingDataTest, SetTotalSize) { EXPECT_EQ(2, data.TileSizeY(2)); } -TEST(TilingDataTest, SetMaxTextureSizeNoBorders) { - TilingData data(gfx::Size(8, 8), gfx::Size(16, 32), false); +TEST_P(TilingDataTest, SetMaxTextureSizeNoBorders) { + gfx::Point origin = GetParam(); + + TilingData data(gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(16, 32)), false); EXPECT_EQ(2, data.num_tiles_x()); EXPECT_EQ(4, data.num_tiles_y()); @@ -756,8 +2105,10 @@ TEST(TilingDataTest, SetMaxTextureSizeNoBorders) { EXPECT_EQ(7, data.num_tiles_y()); } -TEST(TilingDataTest, SetMaxTextureSizeBorders) { - TilingData data(gfx::Size(8, 8), gfx::Size(16, 32), true); +TEST_P(TilingDataTest, SetMaxTextureSizeBorders) { + gfx::Point origin = GetParam(); + + TilingData data(gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(16, 32)), true); EXPECT_EQ(3, data.num_tiles_x()); EXPECT_EQ(5, data.num_tiles_y()); @@ -782,31 +2133,41 @@ TEST(TilingDataTest, SetMaxTextureSizeBorders) { EXPECT_EQ(10, data.num_tiles_y()); } -TEST(TilingDataTest, Assignment) { +TEST_P(TilingDataTest, Assignment) { + gfx::Point origin = GetParam(); + { - TilingData source(gfx::Size(8, 8), gfx::Size(16, 32), true); + TilingData source( + gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(16, 32)), true); TilingData dest = source; EXPECT_EQ(source.border_texels(), dest.border_texels()); EXPECT_EQ(source.max_texture_size(), dest.max_texture_size()); EXPECT_EQ(source.num_tiles_x(), dest.num_tiles_x()); EXPECT_EQ(source.num_tiles_y(), dest.num_tiles_y()); - EXPECT_EQ(source.total_size().width(), dest.total_size().width()); - EXPECT_EQ(source.total_size().height(), dest.total_size().height()); + EXPECT_EQ(source.tiling_rect().x(), dest.tiling_rect().x()); + EXPECT_EQ(source.tiling_rect().y(), dest.tiling_rect().y()); + EXPECT_EQ(source.tiling_rect().width(), dest.tiling_rect().width()); + EXPECT_EQ(source.tiling_rect().height(), dest.tiling_rect().height()); } { - TilingData source(gfx::Size(7, 3), gfx::Size(6, 100), false); + TilingData source( + gfx::Size(7, 3), gfx::Rect(origin, gfx::Size(6, 100)), false); TilingData dest(source); EXPECT_EQ(source.border_texels(), dest.border_texels()); EXPECT_EQ(source.max_texture_size(), dest.max_texture_size()); EXPECT_EQ(source.num_tiles_x(), dest.num_tiles_x()); EXPECT_EQ(source.num_tiles_y(), dest.num_tiles_y()); - EXPECT_EQ(source.total_size().width(), dest.total_size().width()); - EXPECT_EQ(source.total_size().height(), dest.total_size().height()); + EXPECT_EQ(source.tiling_rect().x(), dest.tiling_rect().x()); + EXPECT_EQ(source.tiling_rect().y(), dest.tiling_rect().y()); + EXPECT_EQ(source.tiling_rect().width(), dest.tiling_rect().width()); + EXPECT_EQ(source.tiling_rect().height(), dest.tiling_rect().height()); } } -TEST(TilingDataTest, SetBorderTexels) { - TilingData data(gfx::Size(8, 8), gfx::Size(16, 32), false); +TEST_P(TilingDataTest, SetBorderTexels) { + gfx::Point origin = GetParam(); + + TilingData data(gfx::Size(8, 8), gfx::Rect(origin, gfx::Size(16, 32)), false); EXPECT_EQ(2, data.num_tiles_x()); EXPECT_EQ(4, data.num_tiles_y()); @@ -814,17 +2175,16 @@ TEST(TilingDataTest, SetBorderTexels) { EXPECT_EQ(3, data.num_tiles_x()); EXPECT_EQ(5, data.num_tiles_y()); - data.SetHasBorderTexels(true); - EXPECT_EQ(3, data.num_tiles_x()); - EXPECT_EQ(5, data.num_tiles_y()); - data.SetHasBorderTexels(false); EXPECT_EQ(2, data.num_tiles_x()); EXPECT_EQ(4, data.num_tiles_y()); } -TEST(TilingDataTest, LargeBorders) { - TilingData data(gfx::Size(100, 80), gfx::Size(200, 145), 30); +TEST_P(TilingDataTest, LargeBorders) { + gfx::Point origin = GetParam(); + + TilingData data( + gfx::Size(100, 80), gfx::Rect(origin, gfx::Size(200, 145)), 30); EXPECT_EQ(30, data.border_texels()); EXPECT_EQ(70, data.TileSizeX(0)); @@ -840,77 +2200,87 @@ TEST(TilingDataTest, LargeBorders) { 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.FirstBorderTileXIndexFromSrcCoord(0)); - EXPECT_EQ(0, data.FirstBorderTileXIndexFromSrcCoord(99)); - EXPECT_EQ(1, data.FirstBorderTileXIndexFromSrcCoord(100)); - EXPECT_EQ(1, data.FirstBorderTileXIndexFromSrcCoord(139)); - EXPECT_EQ(2, data.FirstBorderTileXIndexFromSrcCoord(140)); - EXPECT_EQ(2, data.FirstBorderTileXIndexFromSrcCoord(179)); - EXPECT_EQ(3, data.FirstBorderTileXIndexFromSrcCoord(180)); - EXPECT_EQ(3, data.FirstBorderTileXIndexFromSrcCoord(199)); - - EXPECT_EQ(0, data.FirstBorderTileYIndexFromSrcCoord(0)); - EXPECT_EQ(0, data.FirstBorderTileYIndexFromSrcCoord(79)); - EXPECT_EQ(1, data.FirstBorderTileYIndexFromSrcCoord(80)); - EXPECT_EQ(1, data.FirstBorderTileYIndexFromSrcCoord(99)); - EXPECT_EQ(2, data.FirstBorderTileYIndexFromSrcCoord(100)); - EXPECT_EQ(2, data.FirstBorderTileYIndexFromSrcCoord(119)); - EXPECT_EQ(3, data.FirstBorderTileYIndexFromSrcCoord(120)); - EXPECT_EQ(3, data.FirstBorderTileYIndexFromSrcCoord(139)); - EXPECT_EQ(4, data.FirstBorderTileYIndexFromSrcCoord(140)); - EXPECT_EQ(4, data.FirstBorderTileYIndexFromSrcCoord(144)); - - EXPECT_EQ(0, data.LastBorderTileXIndexFromSrcCoord(0)); - EXPECT_EQ(0, data.LastBorderTileXIndexFromSrcCoord(39)); - EXPECT_EQ(1, data.LastBorderTileXIndexFromSrcCoord(40)); - EXPECT_EQ(1, data.LastBorderTileXIndexFromSrcCoord(79)); - EXPECT_EQ(2, data.LastBorderTileXIndexFromSrcCoord(80)); - EXPECT_EQ(2, data.LastBorderTileXIndexFromSrcCoord(119)); - EXPECT_EQ(3, data.LastBorderTileXIndexFromSrcCoord(120)); - EXPECT_EQ(3, data.LastBorderTileXIndexFromSrcCoord(199)); - - EXPECT_EQ(0, data.LastBorderTileYIndexFromSrcCoord(0)); - EXPECT_EQ(0, data.LastBorderTileYIndexFromSrcCoord(19)); - EXPECT_EQ(1, data.LastBorderTileYIndexFromSrcCoord(20)); - EXPECT_EQ(1, data.LastBorderTileYIndexFromSrcCoord(39)); - EXPECT_EQ(2, data.LastBorderTileYIndexFromSrcCoord(40)); - EXPECT_EQ(2, data.LastBorderTileYIndexFromSrcCoord(59)); - EXPECT_EQ(3, data.LastBorderTileYIndexFromSrcCoord(60)); - EXPECT_EQ(3, data.LastBorderTileYIndexFromSrcCoord(79)); - EXPECT_EQ(4, data.LastBorderTileYIndexFromSrcCoord(80)); - EXPECT_EQ(4, data.LastBorderTileYIndexFromSrcCoord(144)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 0, origin.y() + 0, 70, 50), + data.TileBounds(0, 0)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 70, origin.y() + 50, 40, 20), + data.TileBounds(1, 1)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 110, origin.y() + 110, 40, 35), + data.TileBounds(2, 4)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 150, origin.y() + 70, 50, 20), + data.TileBounds(3, 2)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 150, origin.y() + 110, 50, 35), + data.TileBounds(3, 4)); + + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 0, origin.y() + 0, 100, 80), + data.TileBoundsWithBorder(0, 0)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 40, origin.y() + 20, 100, 80), + data.TileBoundsWithBorder(1, 1)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 80, origin.y() + 80, 100, 65), + data.TileBoundsWithBorder(2, 4)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 120, origin.y() + 40, 80, 80), + data.TileBoundsWithBorder(3, 2)); + EXPECT_RECT_EQ(gfx::Rect(origin.x() + 120, origin.y() + 80, 80, 65), + data.TileBoundsWithBorder(3, 4)); + + EXPECT_EQ(0, data.TileXIndexFromSrcCoord(origin.x() + 0)); + EXPECT_EQ(0, data.TileXIndexFromSrcCoord(origin.x() + 69)); + EXPECT_EQ(1, data.TileXIndexFromSrcCoord(origin.x() + 70)); + EXPECT_EQ(1, data.TileXIndexFromSrcCoord(origin.x() + 109)); + EXPECT_EQ(2, data.TileXIndexFromSrcCoord(origin.x() + 110)); + EXPECT_EQ(2, data.TileXIndexFromSrcCoord(origin.x() + 149)); + EXPECT_EQ(3, data.TileXIndexFromSrcCoord(origin.x() + 150)); + EXPECT_EQ(3, data.TileXIndexFromSrcCoord(origin.x() + 199)); + + EXPECT_EQ(0, data.TileYIndexFromSrcCoord(origin.y() + 0)); + EXPECT_EQ(0, data.TileYIndexFromSrcCoord(origin.y() + 49)); + EXPECT_EQ(1, data.TileYIndexFromSrcCoord(origin.y() + 50)); + EXPECT_EQ(1, data.TileYIndexFromSrcCoord(origin.y() + 69)); + EXPECT_EQ(2, data.TileYIndexFromSrcCoord(origin.y() + 70)); + EXPECT_EQ(2, data.TileYIndexFromSrcCoord(origin.y() + 89)); + EXPECT_EQ(3, data.TileYIndexFromSrcCoord(origin.y() + 90)); + EXPECT_EQ(3, data.TileYIndexFromSrcCoord(origin.y() + 109)); + EXPECT_EQ(4, data.TileYIndexFromSrcCoord(origin.y() + 110)); + EXPECT_EQ(4, data.TileYIndexFromSrcCoord(origin.y() + 144)); + + EXPECT_EQ(0, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 0)); + EXPECT_EQ(0, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 99)); + EXPECT_EQ(1, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 100)); + EXPECT_EQ(1, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 139)); + EXPECT_EQ(2, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 140)); + EXPECT_EQ(2, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 179)); + EXPECT_EQ(3, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 180)); + EXPECT_EQ(3, data.FirstBorderTileXIndexFromSrcCoord(origin.x() + 199)); + + EXPECT_EQ(0, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 0)); + EXPECT_EQ(0, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 79)); + EXPECT_EQ(1, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 80)); + EXPECT_EQ(1, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 99)); + EXPECT_EQ(2, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 100)); + EXPECT_EQ(2, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 119)); + EXPECT_EQ(3, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 120)); + EXPECT_EQ(3, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 139)); + EXPECT_EQ(4, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 140)); + EXPECT_EQ(4, data.FirstBorderTileYIndexFromSrcCoord(origin.y() + 144)); + + EXPECT_EQ(0, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 0)); + EXPECT_EQ(0, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 39)); + EXPECT_EQ(1, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 40)); + EXPECT_EQ(1, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 79)); + EXPECT_EQ(2, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 80)); + EXPECT_EQ(2, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 119)); + EXPECT_EQ(3, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 120)); + EXPECT_EQ(3, data.LastBorderTileXIndexFromSrcCoord(origin.x() + 199)); + + EXPECT_EQ(0, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 0)); + EXPECT_EQ(0, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 19)); + EXPECT_EQ(1, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 20)); + EXPECT_EQ(1, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 39)); + EXPECT_EQ(2, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 40)); + EXPECT_EQ(2, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 59)); + EXPECT_EQ(3, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 60)); + EXPECT_EQ(3, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 79)); + EXPECT_EQ(4, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 80)); + EXPECT_EQ(4, data.LastBorderTileYIndexFromSrcCoord(origin.y() + 144)); } void TestIterate(const TilingData& data, @@ -1027,103 +2397,237 @@ void TestIterateAll(const TilingData& data, data, rect, expect_left, expect_top, expect_right, expect_bottom); } -TEST(TilingDataTest, IteratorNoBorderTexels) { - TilingData data(gfx::Size(10, 10), gfx::Size(40, 25), false); +TEST_P(TilingDataTest, IteratorNoBorderTexels) { + gfx::Point origin = GetParam(); + + TilingData data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(40, 25)), false); + // The following Coordinates are relative to the origin. // 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) - TestIterateAll(data, gfx::Rect(0, 0, 40, 25), 0, 0, 3, 2); - TestIterateAll(data, gfx::Rect(15, 15, 8, 8), 1, 1, 2, 2); + TestIterateAll(data, gfx::Rect(origin.x(), origin.y(), 40, 25), 0, 0, 3, 2); + TestIterateAll( + data, gfx::Rect(origin.x() + 15, origin.y() + 15, 8, 8), 1, 1, 2, 2); // Oversized. - TestIterateAll(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 3, 2); - TestIterateAll(data, gfx::Rect(-100, 20, 1000, 1), 0, 2, 3, 2); - TestIterateAll(data, gfx::Rect(29, -100, 31, 1000), 2, 0, 3, 2); + TestIterateAll(data, + gfx::Rect(origin.x() - 100, origin.y() - 100, 1000, 1000), + 0, + 0, + 3, + 2); + TestIterateAll( + data, gfx::Rect(origin.x() - 100, origin.y() + 20, 1000, 1), 0, 2, 3, 2); + TestIterateAll( + data, gfx::Rect(origin.x() + 29, origin.y() - 100, 31, 1000), 2, 0, 3, 2); // Nonintersecting. - TestIterateAll(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); + TestIterateAll(data, + gfx::Rect(origin.x() + 60, origin.y() + 80, 100, 100), + 0, + 0, + -1, + -1); } -TEST(TilingDataTest, BordersIteratorOneBorderTexel) { - TilingData data(gfx::Size(10, 20), gfx::Size(25, 45), true); +TEST_P(TilingDataTest, BordersIteratorOneBorderTexel) { + gfx::Point origin = GetParam(); + + TilingData data( + gfx::Size(10, 20), gfx::Rect(origin, gfx::Size(25, 45)), true); + // The following Coordinates are relative to the origin. // X border index by src coord: [0-10), [8-18), [16-25) // Y border index by src coord: [0-20), [18-38), [36-45) - TestIterateBorders(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2); - TestIterateBorders(data, gfx::Rect(18, 19, 3, 17), 2, 0, 2, 1); - TestIterateBorders(data, gfx::Rect(10, 20, 6, 16), 1, 1, 1, 1); - TestIterateBorders(data, gfx::Rect(9, 19, 8, 18), 0, 0, 2, 2); + TestIterateBorders( + data, gfx::Rect(origin.x(), origin.y(), 25, 45), 0, 0, 2, 2); + TestIterateBorders( + data, gfx::Rect(origin.x() + 18, origin.y() + 19, 3, 17), 2, 0, 2, 1); + TestIterateBorders( + data, gfx::Rect(origin.x() + 10, origin.y() + 20, 6, 16), 1, 1, 1, 1); + TestIterateBorders( + data, gfx::Rect(origin.x() + 9, origin.y() + 19, 8, 18), 0, 0, 2, 2); // Oversized. - TestIterateBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2); - TestIterateBorders(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1); - TestIterateBorders(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2); + TestIterateBorders(data, + gfx::Rect(origin.x() - 100, origin.y() - 100, 1000, 1000), + 0, + 0, + 2, + 2); + TestIterateBorders( + data, gfx::Rect(origin.x() - 100, origin.y() + 20, 1000, 1), 0, 1, 2, 1); + TestIterateBorders( + data, gfx::Rect(origin.x() + 18, origin.y() - 100, 6, 1000), 2, 0, 2, 2); // Nonintersecting. - TestIterateBorders(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); + TestIterateBorders(data, + gfx::Rect(origin.x() + 60, origin.y() + 80, 100, 100), + 0, + 0, + -1, + -1); } -TEST(TilingDataTest, NoBordersIteratorOneBorderTexel) { - TilingData data(gfx::Size(10, 20), gfx::Size(25, 45), true); +TEST_P(TilingDataTest, NoBordersIteratorOneBorderTexel) { + gfx::Point origin = GetParam(); + + TilingData data( + gfx::Size(10, 20), gfx::Rect(origin, gfx::Size(25, 45)), true); + // The following Coordinates are relative to the origin. // X index by src coord: [0-9), [9-17), [17-25) // Y index by src coord: [0-19), [19-37), [37-45) - TestIterateNoBorders(data, gfx::Rect(0, 0, 25, 45), 0, 0, 2, 2); - TestIterateNoBorders(data, gfx::Rect(17, 19, 3, 18), 2, 1, 2, 1); - TestIterateNoBorders(data, gfx::Rect(17, 19, 3, 19), 2, 1, 2, 2); - TestIterateNoBorders(data, gfx::Rect(8, 18, 9, 19), 0, 0, 1, 1); - TestIterateNoBorders(data, gfx::Rect(9, 19, 9, 19), 1, 1, 2, 2); + TestIterateNoBorders( + data, gfx::Rect(origin.x(), origin.y(), 25, 45), 0, 0, 2, 2); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 17, origin.y() + 19, 3, 18), 2, 1, 2, 1); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 17, origin.y() + 19, 3, 19), 2, 1, 2, 2); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 8, origin.y() + 18, 9, 19), 0, 0, 1, 1); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 9, origin.y() + 19, 9, 19), 1, 1, 2, 2); // Oversized. - TestIterateNoBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 2); - TestIterateNoBorders(data, gfx::Rect(-100, 20, 1000, 1), 0, 1, 2, 1); - TestIterateNoBorders(data, gfx::Rect(18, -100, 6, 1000), 2, 0, 2, 2); + TestIterateNoBorders( + data, + gfx::Rect(origin.x() - 100, origin.y() - 100, 1000, 1000), + 0, + 0, + 2, + 2); + TestIterateNoBorders( + data, gfx::Rect(origin.x() - 100, origin.y() + 20, 1000, 1), 0, 1, 2, 1); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 18, origin.y() - 100, 6, 1000), 2, 0, 2, 2); // Nonintersecting. - TestIterateNoBorders(data, gfx::Rect(60, 80, 100, 100), 0, 0, -1, -1); + TestIterateNoBorders(data, + gfx::Rect(origin.x() + 60, origin.y() + 80, 100, 100), + 0, + 0, + -1, + -1); } -TEST(TilingDataTest, BordersIteratorManyBorderTexels) { - TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); +TEST_P(TilingDataTest, BordersIteratorManyBorderTexels) { + gfx::Point origin = GetParam(); + + TilingData data(gfx::Size(50, 60), gfx::Rect(origin, gfx::Size(65, 110)), 20); + // The following Coordinates are relative to the origin. // 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) - TestIterateBorders(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3); - TestIterateBorders(data, gfx::Rect(50, 60, 15, 65), 1, 1, 2, 3); - TestIterateBorders(data, gfx::Rect(60, 30, 2, 10), 2, 0, 2, 1); + TestIterateBorders( + data, gfx::Rect(origin.x(), origin.y(), 65, 110), 0, 0, 2, 3); + TestIterateBorders( + data, gfx::Rect(origin.x() + 50, origin.y() + 60, 15, 65), 1, 1, 2, 3); + TestIterateBorders( + data, gfx::Rect(origin.x() + 60, origin.y() + 30, 2, 10), 2, 0, 2, 1); // Oversized. - TestIterateBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3); - TestIterateBorders(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0); - TestIterateBorders(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 1, 3); + TestIterateBorders(data, + gfx::Rect(origin.x() - 100, origin.y() - 100, 1000, 1000), + 0, + 0, + 2, + 3); + TestIterateBorders( + data, gfx::Rect(origin.x() - 100, origin.y() + 10, 1000, 10), 0, 0, 2, 0); + TestIterateBorders( + data, gfx::Rect(origin.x() + 10, origin.y() - 100, 10, 1000), 0, 0, 1, 3); // Nonintersecting. - TestIterateBorders(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1); + TestIterateBorders(data, + gfx::Rect(origin.x() + 65, origin.y() + 110, 100, 100), + 0, + 0, + -1, + -1); } -TEST(TilingDataTest, NoBordersIteratorManyBorderTexels) { - TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); +TEST_P(TilingDataTest, NoBordersIteratorManyBorderTexels) { + gfx::Point origin = GetParam(); + + TilingData data(gfx::Size(50, 60), gfx::Rect(origin, gfx::Size(65, 110)), 20); + // The following Coordinates are relative to the origin. // X index by src coord: [0-30), [30-40), [40, 65) // Y index by src coord: [0-40), [40-60), [60, 80), [80-110) - TestIterateNoBorders(data, gfx::Rect(0, 0, 65, 110), 0, 0, 2, 3); - TestIterateNoBorders(data, gfx::Rect(30, 40, 15, 65), 1, 1, 2, 3); - TestIterateNoBorders(data, gfx::Rect(60, 20, 2, 21), 2, 0, 2, 1); + TestIterateNoBorders( + data, gfx::Rect(origin.x(), origin.y(), 65, 110), 0, 0, 2, 3); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 30, origin.y() + 40, 15, 65), 1, 1, 2, 3); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 60, origin.y() + 20, 2, 21), 2, 0, 2, 1); // Oversized. - TestIterateNoBorders(data, gfx::Rect(-100, -100, 1000, 1000), 0, 0, 2, 3); - TestIterateNoBorders(data, gfx::Rect(-100, 10, 1000, 10), 0, 0, 2, 0); - TestIterateNoBorders(data, gfx::Rect(10, -100, 10, 1000), 0, 0, 0, 3); + TestIterateNoBorders( + data, + gfx::Rect(origin.x() - 100, origin.y() - 100, 1000, 1000), + 0, + 0, + 2, + 3); + TestIterateNoBorders( + data, gfx::Rect(origin.x() - 100, origin.y() + 10, 1000, 10), 0, 0, 2, 0); + TestIterateNoBorders( + data, gfx::Rect(origin.x() + 10, origin.y() - 100, 10, 1000), 0, 0, 0, 3); // Nonintersecting. - TestIterateNoBorders(data, gfx::Rect(65, 110, 100, 100), 0, 0, -1, -1); + TestIterateNoBorders(data, + gfx::Rect(origin.x() + 65, origin.y() + 110, 100, 100), + 0, + 0, + -1, + -1); } -TEST(TilingDataTest, IteratorOneTile) { - TilingData no_border(gfx::Size(1000, 1000), gfx::Size(30, 40), false); - TestIterateAll(no_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); - TestIterateAll(no_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); - TestIterateAll(no_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); - - TilingData one_border(gfx::Size(1000, 1000), gfx::Size(30, 40), true); - TestIterateAll(one_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); - TestIterateAll(one_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); - TestIterateAll(one_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); - - TilingData big_border(gfx::Size(1000, 1000), gfx::Size(30, 40), 50); - TestIterateAll(big_border, gfx::Rect(0, 0, 30, 40), 0, 0, 0, 0); - TestIterateAll(big_border, gfx::Rect(10, 10, 20, 20), 0, 0, 0, 0); - TestIterateAll(big_border, gfx::Rect(30, 40, 100, 100), 0, 0, -1, -1); +TEST_P(TilingDataTest, IteratorOneTile) { + gfx::Point origin = GetParam(); + + TilingData no_border( + gfx::Size(1000, 1000), gfx::Rect(origin, gfx::Size(30, 40)), false); + TestIterateAll( + no_border, gfx::Rect(origin.x(), origin.y(), 30, 40), 0, 0, 0, 0); + TestIterateAll(no_border, + gfx::Rect(origin.x() + 10, origin.y() + 10, 20, 20), + 0, + 0, + 0, + 0); + TestIterateAll(no_border, + gfx::Rect(origin.x() + 30, origin.y() + 40, 100, 100), + 0, + 0, + -1, + -1); + + TilingData one_border( + gfx::Size(1000, 1000), gfx::Rect(origin, gfx::Size(30, 40)), true); + TestIterateAll( + one_border, gfx::Rect(origin.x(), origin.y(), 30, 40), 0, 0, 0, 0); + TestIterateAll(one_border, + gfx::Rect(origin.x() + 10, origin.y() + 10, 20, 20), + 0, + 0, + 0, + 0); + TestIterateAll(one_border, + gfx::Rect(origin.x() + 30, origin.y() + 40, 100, 100), + 0, + 0, + -1, + -1); + + TilingData big_border( + gfx::Size(1000, 1000), gfx::Rect(origin, gfx::Size(30, 40)), 50); + TestIterateAll( + big_border, gfx::Rect(origin.x(), origin.y(), 30, 40), 0, 0, 0, 0); + TestIterateAll(big_border, + gfx::Rect(origin.x() + 10, origin.y() + 10, 20, 20), + 0, + 0, + 0, + 0); + TestIterateAll(big_border, + gfx::Rect(origin.x() + 30, origin.y() + 40, 100, 100), + 0, + 0, + -1, + -1); } TEST(TilingDataTest, IteratorNoTiles) { - TilingData data(gfx::Size(100, 100), gfx::Size(), false); + TilingData data(gfx::Size(100, 100), gfx::Rect(), false); TestIterateAll(data, gfx::Rect(0, 0, 100, 100), 0, 0, -1, -1); } @@ -1161,89 +2665,176 @@ void TestDiff( EXPECT_EQ(0u, expected.size()); } -TEST(TilingDataTest, DifferenceIteratorIgnoreGeometry) { +TEST_P(TilingDataTest, DifferenceIteratorIgnoreGeometry) { // This test is checking that the iterator can handle different geometries of // ignore rects relative to the consider rect. The consider rect indices // themselves are mostly tested by the non-difference iterator tests, so the // full rect is mostly used here for simplicity. + gfx::Point origin = GetParam(); + + // The following Coordinates are relative to the origin. // 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) - TilingData data(gfx::Size(10, 10), gfx::Size(40, 25), false); + TilingData data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(40, 25)), false); // Fully ignored - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 0, 40, 25), 0); - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(-100, -100, 200, 200), 0); - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(9, 9, 30, 15), 0); - TestDiff(data, gfx::Rect(15, 15, 8, 8), gfx::Rect(15, 15, 8, 8), 0); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y(), 40, 25), + 0); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() - 100, origin.y() - 100, 200, 200), + 0); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() + 9, origin.y() + 9, 30, 15), + 0); + TestDiff(data, + gfx::Rect(origin.x() + 15, origin.y() + 15, 8, 8), + gfx::Rect(origin.x() + 15, origin.y() + 15, 8, 8), + 0); // Fully un-ignored - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(-30, -20, 8, 8), 12); - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(), 12); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() - 30, origin.y() - 20, 8, 8), + 12); + TestDiff(data, gfx::Rect(origin.x(), origin.y(), 40, 25), gfx::Rect(), 12); // Top left, remove 2x2 tiles - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 0, 20, 19), 8); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y(), 20, 19), + 8); // Bottom right, remove 2x2 tiles - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(20, 15, 20, 6), 8); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() + 20, origin.y() + 15, 20, 6), + 8); // Bottom left, remove 2x2 tiles - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 15, 20, 6), 8); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y() + 15, 20, 6), + 8); // Top right, remove 2x2 tiles - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(20, 0, 20, 19), 8); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() + 20, origin.y(), 20, 19), + 8); // Center, remove only one tile - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(10, 10, 5, 5), 11); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() + 10, origin.y() + 10, 5, 5), + 11); // Left column, flush left, removing two columns - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 0, 11, 25), 6); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y(), 11, 25), + 6); // Middle column, removing two columns - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(11, 0, 11, 25), 6); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() + 11, origin.y(), 11, 25), + 6); // Right column, flush right, removing one column - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(30, 0, 2, 25), 9); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x() + 30, origin.y(), 2, 25), + 9); // Top row, flush top, removing one row - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 5, 40, 5), 8); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y() + 5, 40, 5), + 8); // Middle row, removing one row - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 13, 40, 5), 8); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y() + 13, 40, 5), + 8); // Bottom row, flush bottom, removing two rows - TestDiff(data, gfx::Rect(0, 0, 40, 25), gfx::Rect(0, 13, 40, 12), 4); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 40, 25), + gfx::Rect(origin.x(), origin.y() + 13, 40, 12), + 4); // Non-intersecting, but still touching two of the same tiles. - TestDiff(data, gfx::Rect(8, 0, 32, 25), gfx::Rect(0, 12, 5, 12), 10); + TestDiff(data, + gfx::Rect(origin.x() + 8, origin.y(), 32, 25), + gfx::Rect(origin.x(), origin.y() + 12, 5, 12), + 10); // Intersecting, but neither contains the other. 2x3 with one overlap. - TestDiff(data, gfx::Rect(5, 2, 20, 10), gfx::Rect(25, 15, 5, 10), 5); + TestDiff(data, + gfx::Rect(origin.x() + 5, origin.y() + 2, 20, 10), + gfx::Rect(origin.x() + 25, origin.y() + 15, 5, 10), + 5); } -TEST(TilingDataTest, DifferenceIteratorManyBorderTexels) { +TEST_P(TilingDataTest, DifferenceIteratorManyBorderTexels) { + gfx::Point origin = GetParam(); + + // The following Coordinates are relative to the origin. // 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) - TilingData data(gfx::Size(50, 60), gfx::Size(65, 110), 20); + TilingData data(gfx::Size(50, 60), gfx::Rect(origin, gfx::Size(65, 110)), 20); // Ignore one column, three rows - TestDiff(data, gfx::Rect(0, 30, 55, 80), gfx::Rect(5, 30, 5, 15), 9); + TestDiff(data, + gfx::Rect(origin.x(), origin.y() + 30, 55, 80), + gfx::Rect(origin.x() + 5, origin.y() + 30, 5, 15), + 9); // Knock out three columns, leaving only one. - TestDiff(data, gfx::Rect(10, 30, 55, 80), gfx::Rect(30, 59, 20, 1), 3); + TestDiff(data, + gfx::Rect(origin.x() + 10, origin.y() + 30, 55, 80), + gfx::Rect(origin.x() + 30, origin.y() + 59, 20, 1), + 3); // Overlap all tiles with ignore rect. - TestDiff(data, gfx::Rect(0, 0, 65, 110), gfx::Rect(30, 59, 1, 2), 0); + TestDiff(data, + gfx::Rect(origin.x(), origin.y(), 65, 110), + gfx::Rect(origin.x() + 30, origin.y() + 59, 1, 2), + 0); } -TEST(TilingDataTest, DifferenceIteratorOneTile) { - TilingData no_border(gfx::Size(1000, 1000), gfx::Size(30, 40), false); - TestDiff(no_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1); - TestDiff(no_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); - - TilingData one_border(gfx::Size(1000, 1000), gfx::Size(30, 40), true); - TestDiff(one_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1); - TestDiff(one_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); - - TilingData big_border(gfx::Size(1000, 1000), gfx::Size(30, 40), 50); - TestDiff(big_border, gfx::Rect(0, 0, 30, 40), gfx::Rect(), 1); - TestDiff(big_border, gfx::Rect(5, 5, 100, 100), gfx::Rect(5, 5, 1, 1), 0); +TEST_P(TilingDataTest, DifferenceIteratorOneTile) { + gfx::Point origin = GetParam(); + + TilingData no_border( + gfx::Size(1000, 1000), gfx::Rect(origin, gfx::Size(30, 40)), false); + TestDiff( + no_border, gfx::Rect(origin.x(), origin.y(), 30, 40), gfx::Rect(), 1); + TestDiff(no_border, + gfx::Rect(origin.x() + 5, origin.y() + 5, 100, 100), + gfx::Rect(origin.x() + 5, origin.y() + 5, 1, 1), + 0); + + TilingData one_border( + gfx::Size(1000, 1000), gfx::Rect(origin, gfx::Size(30, 40)), true); + TestDiff( + one_border, gfx::Rect(origin.x(), origin.y(), 30, 40), gfx::Rect(), 1); + TestDiff(one_border, + gfx::Rect(origin.x() + 5, origin.y() + 5, 100, 100), + gfx::Rect(origin.x() + 5, origin.y() + 5, 1, 1), + 0); + + TilingData big_border( + gfx::Size(1000, 1000), gfx::Rect(origin, gfx::Size(30, 40)), 50); + TestDiff( + big_border, gfx::Rect(origin.x(), origin.y(), 30, 40), gfx::Rect(), 1); + TestDiff(big_border, + gfx::Rect(origin.x() + 5, origin.y() + 5, 100, 100), + gfx::Rect(origin.x() + 5, origin.y() + 5, 1, 1), + 0); } TEST(TilingDataTest, DifferenceIteratorNoTiles) { - TilingData data(gfx::Size(100, 100), gfx::Size(), false); + TilingData data(gfx::Size(100, 100), gfx::Rect(), false); TestDiff(data, gfx::Rect(0, 0, 100, 100), gfx::Rect(0, 0, 5, 5), 0); } @@ -1271,14 +2862,16 @@ void TestSpiralIterate(int source_line_number, } } -TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { - TilingData tiling_data(gfx::Size(10, 10), gfx::Size(30, 30), false); - gfx::Rect consider(0, 0, 30, 30); +TEST_P(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { + gfx::Point origin = GetParam(); + TilingData tiling_data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(30, 30)), false); + gfx::Rect consider(origin.x(), origin.y(), 30, 30); gfx::Rect ignore; std::vector<std::pair<int, int> > expected; // Center is in the center of the tiling. - gfx::Rect center(15, 15, 1, 1); + gfx::Rect center(origin.x() + 15, origin.y() + 15, 1, 1); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1298,7 +2891,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Center is off to the right side of the tiling (and far away). - center = gfx::Rect(100, 15, 1, 1); + center = gfx::Rect(origin.x() + 100, origin.y() + 15, 1, 1); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1320,7 +2913,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Center is the bottom right corner of the tiling. - center = gfx::Rect(25, 25, 1, 1); + center = gfx::Rect(origin.x() + 25, origin.y() + 25, 1, 1); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1341,7 +2934,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Center is off the top left side of the tiling. - center = gfx::Rect(-60, -50, 1, 1); + center = gfx::Rect(origin.x() - 60, origin.y() - 50, 1, 1); // Layout of the tiling data, and expected return order: // * x 0 1 2 @@ -1363,7 +2956,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Two tile center. - center = gfx::Rect(15, 15, 1, 10); + center = gfx::Rect(origin.x() + 15, origin.y() + 15, 1, 10); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1383,14 +2976,16 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); } -TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { - TilingData tiling_data(gfx::Size(10, 10), gfx::Size(50, 50), false); +TEST_P(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { + gfx::Point origin = GetParam(); + TilingData tiling_data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(50, 50)), false); gfx::Rect ignore; std::vector<std::pair<int, int> > expected; - gfx::Rect center(15, 15, 1, 1); + gfx::Rect center(origin.x() + 15, origin.y() + 15, 1, 1); // Consider is one cell. - gfx::Rect consider(0, 0, 1, 1); + gfx::Rect consider(origin.x(), origin.y(), 1, 1); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1405,7 +3000,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Consider is bottom right corner. - consider = gfx::Rect(25, 25, 10, 10); + consider = gfx::Rect(origin.x() + 25, origin.y() + 25, 10, 10); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1424,7 +3019,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Consider is one column. - consider = gfx::Rect(11, 0, 1, 100); + consider = gfx::Rect(origin.x() + 11, origin.y(), 1, 100); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1443,14 +3038,16 @@ TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); } -TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { - TilingData tiling_data(gfx::Size(10, 10), gfx::Size(50, 50), false); - gfx::Rect consider(0, 0, 50, 50); +TEST_P(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { + gfx::Point origin = GetParam(); + TilingData tiling_data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(50, 50)), false); + gfx::Rect consider(origin.x(), origin.y(), 50, 50); std::vector<std::pair<int, int> > expected; - gfx::Rect center(15, 15, 1, 1); + gfx::Rect center(origin.x() + 15, origin.y() + 15, 1, 1); // Full ignore. - gfx::Rect ignore(0, 0, 50, 50); + gfx::Rect ignore(origin.x(), origin.y(), 50, 50); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1465,7 +3062,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // 3 column ignore. - ignore = gfx::Rect(15, 0, 20, 100); + ignore = gfx::Rect(origin.x() + 15, origin.y(), 20, 100); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1491,7 +3088,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Ignore covers the top half. - ignore = gfx::Rect(0, 0, 50, 25); + ignore = gfx::Rect(origin.x(), origin.y(), 50, 25); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1517,14 +3114,16 @@ TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); } -TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { - TilingData tiling_data(gfx::Size(10, 10), gfx::Size(50, 50), false); - gfx::Rect consider(0, 0, 50, 50); +TEST_P(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { + gfx::Point origin = GetParam(); + TilingData tiling_data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(50, 50)), false); + gfx::Rect consider(origin.x(), origin.y(), 50, 50); std::vector<std::pair<int, int> > expected; gfx::Rect ignore; // Two cell center - gfx::Rect center(25, 25, 1, 10); + gfx::Rect center(origin.x() + 25, origin.y() + 25, 1, 10); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1563,7 +3162,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Three by two center. - center = gfx::Rect(15, 25, 20, 10); + center = gfx::Rect(origin.x() + 15, origin.y() + 25, 20, 10); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1598,7 +3197,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Column center off the left side. - center = gfx::Rect(-50, 0, 30, 50); + center = gfx::Rect(origin.x() - 50, origin.y(), 30, 50); // Layout of the tiling data, and expected return order: // x 0 1 2 3 4 @@ -1639,17 +3238,19 @@ TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); } -TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { - TilingData tiling_data(gfx::Size(10, 10), gfx::Size(30, 30), false); +TEST_P(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { + gfx::Point origin = GetParam(); + TilingData tiling_data( + gfx::Size(10, 10), gfx::Rect(origin, gfx::Size(30, 30)), false); std::vector<std::pair<int, int> > expected; gfx::Rect center; gfx::Rect consider; gfx::Rect ignore; // Ignore contains, but is not equal to, consider and center. - ignore = gfx::Rect(15, 0, 20, 30); - consider = gfx::Rect(20, 10, 10, 20); - center = gfx::Rect(25, 0, 5, 5); + ignore = gfx::Rect(origin.x() + 15, origin.y(), 20, 30); + consider = gfx::Rect(origin.x() + 20, origin.y() + 10, 10, 20); + center = gfx::Rect(origin.x() + 25, origin.y(), 5, 5); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1663,8 +3264,8 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { // Center intersects with consider. ignore = gfx::Rect(); - center = gfx::Rect(0, 15, 30, 15); - consider = gfx::Rect(0, 0, 15, 30); + center = gfx::Rect(origin.x(), origin.y() + 15, 30, 15); + consider = gfx::Rect(origin.x(), origin.y(), 15, 30); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1680,9 +3281,9 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Consider and ignore are non-intersecting. - ignore = gfx::Rect(0, 0, 5, 30); - consider = gfx::Rect(25, 0, 5, 30); - center = gfx::Rect(15, 0, 1, 1); + ignore = gfx::Rect(origin.x(), origin.y(), 5, 30); + consider = gfx::Rect(origin.x() + 25, origin.y(), 5, 30); + center = gfx::Rect(origin.x() + 15, origin.y(), 1, 1); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1699,9 +3300,9 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Center intersects with ignore. - consider = gfx::Rect(0, 0, 30, 30); - center = gfx::Rect(15, 0, 1, 30); - ignore = gfx::Rect(0, 15, 30, 1); + consider = gfx::Rect(origin.x(), origin.y(), 30, 30); + center = gfx::Rect(origin.x() + 15, origin.y(), 1, 30); + ignore = gfx::Rect(origin.x(), origin.y() + 15, 30, 1); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1719,8 +3320,8 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Center and ignore are the same. - consider = gfx::Rect(0, 0, 30, 30); - center = gfx::Rect(15, 0, 1, 30); + consider = gfx::Rect(origin.x(), origin.y(), 30, 30); + center = gfx::Rect(origin.x() + 15, origin.y(), 1, 30); ignore = center; // Layout of the tiling data, and expected return order: @@ -1741,7 +3342,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Empty tiling data. - TilingData empty_data(gfx::Size(0, 0), gfx::Size(0, 0), false); + TilingData empty_data(gfx::Size(0, 0), gfx::Rect(0, 0, 0, 0), false); expected.clear(); TestSpiralIterate(__LINE__, empty_data, consider, ignore, center, expected); @@ -1756,7 +3357,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { // Empty center. Note: This arbitrarily puts the center to be off the top-left // corner. - consider = gfx::Rect(0, 0, 30, 30); + consider = gfx::Rect(origin.x(), origin.y(), 30, 30); ignore = gfx::Rect(); center = gfx::Rect(); @@ -1789,9 +3390,9 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); // Center is just to the left of cover, and off of the tiling's left side. - consider = gfx::Rect(0, 0, 30, 30); + consider = gfx::Rect(origin.x(), origin.y(), 30, 30); ignore = gfx::Rect(); - center = gfx::Rect(-20, 0, 19, 30); + center = gfx::Rect(origin.x() - 20, origin.y(), 19, 30); // Layout of the tiling data, and expected return order: // x 0 1 2 @@ -1813,6 +3414,15 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); } + +INSTANTIATE_TEST_CASE_P(TilingData, + TilingDataTest, + ::testing::Values(gfx::Point(42, 17), + gfx::Point(0, 0), + gfx::Point(-8, 15), + gfx::Point(-12, 4), + gfx::Point(-16, -35), + gfx::Point(-10000, -15000))); } // namespace } // namespace cc |