Index: cc/base/tiling_data_unittest.cc |
diff --git a/cc/base/tiling_data_unittest.cc b/cc/base/tiling_data_unittest.cc |
index 004db11c3e23f47b6119d3aca2d0cc82cf4ffff3..9a96235f99c75f9a8602f6713cc63feafdb17550 100644 |
--- a/cc/base/tiling_data_unittest.cc |
+++ b/cc/base/tiling_data_unittest.cc |
@@ -1422,17 +1422,17 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { |
// Layout of the tiling data, and expected return order: |
// x 0 1 2 |
// y.------ |
- // 0| 4 3 2 |
- // 1| 5 * 1 |
- // 2| 6 7 8 |
+ // 0| 7 5 3 |
+ // 1| 8 * 1 |
+ // 2| 6 4 2 |
expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 2)); |
expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 2)); |
expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(0, 2)); |
expected.push_back(std::make_pair(0, 0)); |
expected.push_back(std::make_pair(0, 1)); |
- expected.push_back(std::make_pair(0, 2)); |
- expected.push_back(std::make_pair(1, 2)); |
- expected.push_back(std::make_pair(2, 2)); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1443,7 +1443,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { |
// x 0 1 2 |
// y.------ |
// 0| 7 4 1 |
- // 1| 8 5 2 * |
+ // 1| 8 5 2 * |
// 2| 9 6 3 |
expected.clear(); |
expected.push_back(std::make_pair(2, 0)); |
@@ -1485,19 +1485,19 @@ TEST(TilingDataTest, SpiralDifferenceIteratorNoIgnoreFullConsider) { |
// Layout of the tiling data, and expected return order: |
// * x 0 1 2 |
// y.------ |
- // 0| 1 2 6 |
- // 1| 3 4 5 |
- // 2| 7 8 9 |
+ // 0| 1 4 9 |
+ // 1| 2 3 8 |
+ // 2| 6 5 7 |
expected.clear(); |
expected.push_back(std::make_pair(0, 0)); |
- expected.push_back(std::make_pair(1, 0)); |
expected.push_back(std::make_pair(0, 1)); |
expected.push_back(std::make_pair(1, 1)); |
- expected.push_back(std::make_pair(2, 1)); |
- expected.push_back(std::make_pair(2, 0)); |
- expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(1, 0)); |
expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(0, 2)); |
expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 0)); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1552,13 +1552,13 @@ TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { |
// 0| |
// 1| * |
// 2| 1 2 |
- // 3| 3 4 |
+ // 3| 4 3 |
// 4| |
expected.clear(); |
expected.push_back(std::make_pair(2, 2)); |
expected.push_back(std::make_pair(3, 2)); |
- expected.push_back(std::make_pair(2, 3)); |
expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(2, 3)); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1570,12 +1570,12 @@ TEST(TilingDataTest, SpiralDifferenceIteratorSmallConsider) { |
// y.---------- |
// 0| 2 |
// 1| * |
- // 2| 3 |
- // 3| 4 |
- // 4| 5 |
+ // 2| 1 |
+ // 3| 3 |
+ // 4| 4 |
expected.clear(); |
- expected.push_back(std::make_pair(1, 0)); |
expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 0)); |
expected.push_back(std::make_pair(1, 3)); |
expected.push_back(std::make_pair(1, 4)); |
@@ -1592,13 +1592,13 @@ TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { |
gfx::Rect ignore(50, 50); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 3 4 |
- // y.---------- |
- // 0| . . . . . |
- // 1| . * . . . |
- // 2| . . . . . |
- // 3| . . . . . |
- // 4| . . . . . |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| I I I I I |
+ // 1| I * I I I |
+ // 2| I I I I I |
+ // 3| I I I I I |
+ // 4| I I I I I |
expected.clear(); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1607,25 +1607,25 @@ TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { |
ignore = gfx::Rect(15, 0, 20, 100); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 3 4 |
- // y.---------- |
- // 0| 1 . . . 8 |
- // 1| 2 * . . 7 |
- // 2| 3 . . . 6 |
- // 3| 4 . . . 5 |
- // 4| 9 . . . 10 |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 2 I I I 8 |
+ // 1| 3 * I I 7 |
+ // 2| 1 I I I 6 |
+ // 3| 4 I I I 5 |
+ // 4| 10 I I I 9 |
expected.clear(); |
+ expected.push_back(std::make_pair(0, 2)); |
expected.push_back(std::make_pair(0, 0)); |
expected.push_back(std::make_pair(0, 1)); |
- expected.push_back(std::make_pair(0, 2)); |
expected.push_back(std::make_pair(0, 3)); |
expected.push_back(std::make_pair(4, 3)); |
expected.push_back(std::make_pair(4, 2)); |
expected.push_back(std::make_pair(4, 1)); |
expected.push_back(std::make_pair(4, 0)); |
- expected.push_back(std::make_pair(0, 4)); |
expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(0, 4)); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1633,25 +1633,25 @@ TEST(TilingDataTest, SpiralDifferenceIteratorHasIgnore) { |
ignore = gfx::Rect(50, 25); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 3 4 |
- // y.---------- |
- // 0| . . . . . |
- // 1| . * . . . |
- // 2| . . . . . |
- // 3| 1 2 3 4 5 |
- // 4| 6 7 8 9 10 |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| I I I I I |
+ // 1| I * I I I |
+ // 2| I I I I I |
+ // 3| 2 3 4 1 5 |
+ // 4| 7 8 9 10 6 |
expected.clear(); |
+ expected.push_back(std::make_pair(3, 3)); |
expected.push_back(std::make_pair(0, 3)); |
expected.push_back(std::make_pair(1, 3)); |
expected.push_back(std::make_pair(2, 3)); |
- expected.push_back(std::make_pair(3, 3)); |
expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 4)); |
expected.push_back(std::make_pair(0, 4)); |
expected.push_back(std::make_pair(1, 4)); |
expected.push_back(std::make_pair(2, 4)); |
expected.push_back(std::make_pair(3, 4)); |
- expected.push_back(std::make_pair(4, 4)); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
} |
@@ -1666,25 +1666,25 @@ TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { |
gfx::Rect center(25, 25, 1, 10); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 3 4 |
- // y.---------- |
- // 0| J I H G F |
- // 1| K 5 4 3 E |
- // 2| L 6 * 2 D |
- // 3| M 7 * 1 C |
- // 4| N 8 9 A B |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 19 18 17 16 15 |
+ // 1| 20 8 6 4 14 |
+ // 2| 21 9 * 2 13 |
+ // 3| 22 10 * 1 12 |
+ // 4| 23 7 5 3 11 |
expected.clear(); |
expected.push_back(std::make_pair(3, 3)); |
expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 4)); |
expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(2, 4)); |
expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(1, 4)); |
expected.push_back(std::make_pair(1, 1)); |
expected.push_back(std::make_pair(1, 2)); |
expected.push_back(std::make_pair(1, 3)); |
- expected.push_back(std::make_pair(1, 4)); |
- expected.push_back(std::make_pair(2, 4)); |
- expected.push_back(std::make_pair(3, 4)); |
expected.push_back(std::make_pair(4, 4)); |
expected.push_back(std::make_pair(4, 3)); |
expected.push_back(std::make_pair(4, 2)); |
@@ -1705,29 +1705,29 @@ TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { |
center = gfx::Rect(15, 25, 20, 10); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 3 4 |
- // y.---------- |
- // 0| J I H G F |
- // 1| 7 6 5 4 3 |
- // 2| 8 * * * 2 |
- // 3| 9 * * * 1 |
- // 4| A B C D E |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 19 18 17 16 15 |
+ // 1| 12 10 9 8 4 |
+ // 2| 13 * * * 2 |
+ // 3| 14 * * * 1 |
+ // 4| 11 5 6 7 3 |
expected.clear(); |
expected.push_back(std::make_pair(4, 3)); |
expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 4)); |
expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
expected.push_back(std::make_pair(3, 1)); |
expected.push_back(std::make_pair(2, 1)); |
expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(0, 4)); |
expected.push_back(std::make_pair(0, 1)); |
expected.push_back(std::make_pair(0, 2)); |
expected.push_back(std::make_pair(0, 3)); |
- expected.push_back(std::make_pair(0, 4)); |
- expected.push_back(std::make_pair(1, 4)); |
- expected.push_back(std::make_pair(2, 4)); |
- expected.push_back(std::make_pair(3, 4)); |
- expected.push_back(std::make_pair(4, 4)); |
expected.push_back(std::make_pair(4, 0)); |
expected.push_back(std::make_pair(3, 0)); |
expected.push_back(std::make_pair(2, 0)); |
@@ -1740,13 +1740,13 @@ TEST(TilingDataTest, SpiralDifferenceIteratorRectangleCenter) { |
center = gfx::Rect(-50, 0, 30, 50); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 3 4 |
- // y.---------- |
- // * 0| 5 A F K P |
- // * 1| 4 9 E J O |
- // * 2| 3 8 D I N |
- // * 3| 2 7 C H M |
- // * 4| 1 6 B G L |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // * 0| 5 10 15 20 25 |
+ // * 1| 4 9 14 19 24 |
+ // * 2| 3 8 13 18 23 |
+ // * 3| 2 7 12 17 22 |
+ // * 4| 1 6 11 16 21 |
expected.clear(); |
expected.push_back(std::make_pair(0, 4)); |
@@ -1793,9 +1793,9 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { |
// Layout of the tiling data, and expected return order: |
// x 0 1 2 |
// y.------ |
- // 0| . * |
- // 1| . . |
- // 2| . . |
+ // 0| I * |
+ // 1| I I |
+ // 2| I I |
expected.clear(); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1826,9 +1826,9 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { |
// Layout of the tiling data, and expected return order: |
// x 0 1 2 |
// y.------ |
- // 0| . * 1 |
- // 1| . 2 |
- // 2| . 3 |
+ // 0| I * 1 |
+ // 1| I 2 |
+ // 2| I 3 |
expected.clear(); |
expected.push_back(std::make_pair(2, 0)); |
@@ -1846,7 +1846,7 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { |
// x 0 1 2 |
// y.------ |
// 0| 3 * 2 |
- // 1| . * . |
+ // 1| I * I |
// 2| 4 * 1 |
expected.clear(); |
@@ -1903,19 +1903,19 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { |
// * x 0 1 2 |
// y.------ |
// 0| 1 2 6 |
- // 1| 3 4 5 |
- // 2| 7 8 9 |
+ // 1| 4 3 5 |
+ // 2| 8 9 7 |
expected.clear(); |
expected.push_back(std::make_pair(0, 0)); |
expected.push_back(std::make_pair(1, 0)); |
- expected.push_back(std::make_pair(0, 1)); |
expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(0, 1)); |
expected.push_back(std::make_pair(2, 1)); |
expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(2, 2)); |
expected.push_back(std::make_pair(0, 2)); |
expected.push_back(std::make_pair(1, 2)); |
- expected.push_back(std::make_pair(2, 2)); |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
@@ -1933,11 +1933,11 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { |
center = gfx::Rect(-20, 0, 19, 30); |
// Layout of the tiling data, and expected return order: |
- // x 0 1 2 |
- // y.------ |
- // *0| 3 6 9 |
- // *1| 2 5 8 |
- // *2| 1 4 7 |
+ // x 0 1 2 |
+ // y.------ |
+ // * 0| 3 6 9 |
+ // * 1| 2 5 8 |
+ // * 2| 1 4 7 |
expected.clear(); |
expected.push_back(std::make_pair(0, 2)); |
@@ -1953,6 +1953,761 @@ TEST(TilingDataTest, SpiralDifferenceIteratorEdgeCases) { |
TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
} |
+TEST(TilingDataTest, SpiralDifferenceIteratorWideTilesNoIgnoreFullConsider) { |
+ TilingData tiling_data(gfx::Size(20, 10), gfx::Size(100, 50), false); |
+ gfx::Rect consider(100, 50); |
+ gfx::Rect ignore; |
+ std::vector<std::pair<int, int>> expected; |
+ |
+ // Center is in the center of the tiling. |
+ gfx::Rect center(50, 25, 1, 1); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 21 14 13 12 19 |
+ // 1| 22 7 5 3 17 |
+ // 2| 23 8 * 1 16 |
+ // 3| 24 6 4 2 15 |
+ // 4| 20 9 10 11 18 |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Center is off to the right side of the tiling (and far away). |
+ center = gfx::Rect(200, 25, 1, 1); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 21 16 11 6 1 |
+ // 1| 22 17 12 7 2 |
+ // 2| 23 18 13 8 3 * |
+ // 3| 24 19 14 9 4 |
+ // 4| 25 20 15 10 5 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Center is the bottom right corner of the tiling. |
+ center = gfx::Rect(90, 45, 1, 1); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 20 15 14 13 12 |
+ // 1| 21 16 8 7 6 |
+ // 2| 22 17 9 5 4 |
+ // 3| 23 18 10 2 1 |
+ // 4| 24 19 11 3 * |
+ expected.clear(); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ |
+ 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); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // Layout of the tiling data, and expected return order: |
+ // * |
+ // |
+ // |
+ // |
+ // |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 1 2 20 21 24 |
+ // 1| 3 4 5 22 23 |
+ // 2| 6 7 8 9 25 |
+ // 3| 10 11 12 13 14 |
+ // 4| 15 16 17 18 19 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Two tile center. |
+ center = gfx::Rect(50, 15, 1, 10); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 20 8 6 4 17 |
+ // 1| 21 9 * 2 16 |
+ // 2| 22 10 * 1 15 |
+ // 3| 23 7 5 3 14 |
+ // 4| 19 11 12 13 18 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+} |
+ |
+TEST(TilingDataTest, SpiralDifferenceIteratorWideTilesSmallConsider) { |
+ TilingData tiling_data(gfx::Size(20, 10), gfx::Size(100, 50), false); |
+ gfx::Rect ignore; |
+ std::vector<std::pair<int, int>> expected; |
+ gfx::Rect center(30, 15, 1, 1); |
+ |
+ // Consider is one cell. |
+ gfx::Rect consider(1, 1); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 1 |
+ // 1| * |
+ // 2| |
+ // 3| |
+ // 4| |
+ expected.push_back(std::make_pair(0, 0)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Consider is bottom right corner. |
+ consider = gfx::Rect(70, 35, 20, 10); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| |
+ // 1| * |
+ // 2| |
+ // 3| 1 3 |
+ // 4| 2 4 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Consider is one column. |
+ consider = gfx::Rect(21, 0, 1, 100); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 2 |
+ // 1| * |
+ // 2| 1 |
+ // 3| 3 |
+ // 4| 4 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Consider is four columns. |
+ consider = gfx::Rect(80, 50); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 7 5 3 14 |
+ // 1| 8 * 1 13 |
+ // 2| 6 4 2 12 |
+ // 3| 9 10 11 15 |
+ // 4| 16 17 18 19 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+} |
+ |
+TEST(TilingDataTest, SpiralDifferenceIteratorWideTilesHasIgnore) { |
+ TilingData tiling_data(gfx::Size(20, 10), gfx::Size(100, 50), false); |
+ gfx::Rect consider(100, 50); |
+ std::vector<std::pair<int, int>> expected; |
+ gfx::Rect center(30, 15, 1, 1); |
+ |
+ // Full ignore. |
+ gfx::Rect ignore(100, 50); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| I I I I I |
+ // 1| I * I I I |
+ // 2| I I I I I |
+ // 3| I I I I I |
+ // 4| I I I I I |
+ expected.clear(); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // 3 column ignore. |
+ ignore = gfx::Rect(30, 0, 40, 100); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 2 I I I 9 |
+ // 1| 3 * I I 8 |
+ // 2| 1 I I I 7 |
+ // 3| 4 I I I 6 |
+ // 4| 5 I I I 10 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Ignore covers the top half. |
+ ignore = gfx::Rect(100, 25); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| I I I I I |
+ // 1| I * I I I |
+ // 2| I I I I I |
+ // 3| 1 2 3 4 9 |
+ // 4| 5 6 7 8 10 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+} |
+ |
+TEST(TilingDataTest, SpiralDifferenceIteratorWideTilesRectangleCenter) { |
+ TilingData tiling_data(gfx::Size(20, 10), gfx::Size(100, 50), false); |
+ gfx::Rect consider(100, 50); |
+ std::vector<std::pair<int, int>> expected; |
+ gfx::Rect ignore; |
+ |
+ // Two cell center |
+ gfx::Rect center(50, 25, 1, 10); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 19 13 12 11 18 |
+ // 1| 20 8 6 4 17 |
+ // 2| 21 9 * 2 16 |
+ // 3| 22 10 * 1 15 |
+ // 4| 23 7 5 3 14 |
+ expected.clear(); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Three by two center. |
+ center = gfx::Rect(30, 25, 40, 10); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 19 18 17 16 15 |
+ // 1| 12 10 9 8 4 |
+ // 2| 13 * * * 2 |
+ // 3| 14 * * * 1 |
+ // 4| 11 5 6 7 3 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Column center off the left side. |
+ center = gfx::Rect(-100, 0, 60, 50); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // * 0| 5 10 15 20 25 |
+ // * 1| 4 9 14 19 24 |
+ // * 2| 3 8 13 18 23 |
+ // * 3| 2 7 12 17 22 |
+ // * 4| 1 6 11 16 21 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+} |
+ |
+TEST(TilingDataTest, SpiralDifferenceIteratorWideTilesEdgeCases) { |
+ TilingData tiling_data(gfx::Size(20, 10), gfx::Size(100, 50), 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(70, 0, 40, 50); |
+ consider = gfx::Rect(80, 20, 20, 30); |
+ center = gfx::Rect(90, 0, 5, 5); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| I * |
+ // 1| I I |
+ // 2| I I |
+ // 3| I I |
+ // 4| I I |
+ expected.clear(); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Center intersects with consider. |
+ ignore = gfx::Rect(); |
+ center = gfx::Rect(0, 30, 100, 20); |
+ consider = gfx::Rect(40, 50); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 6 5 |
+ // 1| 4 3 |
+ // 2| 2 1 |
+ // 3| * * * * * |
+ // 4| * * * * * |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Consider and ignore are non-intersecting. |
+ ignore = gfx::Rect(30, 50); |
+ consider = gfx::Rect(60, 0, 30, 50); |
+ center = gfx::Rect(50, 0, 1, 1); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| I I * 1 5 |
+ // 1| I I 2 4 |
+ // 2| I I 3 6 |
+ // 3| I I 7 8 |
+ // 4| I I 9 10 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Center intersects with ignore. |
+ consider = gfx::Rect(100, 50); |
+ center = gfx::Rect(50, 0, 1, 50); |
+ ignore = gfx::Rect(0, 25, 100, 1); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 13 5 * 4 12 |
+ // 1| 14 6 * 3 11 |
+ // 2| I I * I I |
+ // 3| 15 7 * 2 10 |
+ // 4| 16 8 * 1 9 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Center and ignore are the same. |
+ consider = gfx::Rect(100, 50); |
+ center = gfx::Rect(50, 0, 1, 50); |
+ ignore = center; |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 16 6 * 5 15 |
+ // 1| 17 7 * 4 14 |
+ // 2| 18 8 * 3 13 |
+ // 3| 19 9 * 2 12 |
+ // 4| 20 10 * 1 11 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Empty tiling data. |
+ TilingData empty_data(gfx::Size(0, 0), gfx::Size(0, 0), false); |
+ |
+ expected.clear(); |
+ TestSpiralIterate(__LINE__, empty_data, consider, ignore, center, expected); |
+ |
+ // Empty consider. |
+ ignore = gfx::Rect(); |
+ center = gfx::Rect(1, 1, 1, 1); |
+ consider = gfx::Rect(); |
+ |
+ expected.clear(); |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Empty center. Note: This arbitrarily puts the center to be off the top-left |
+ // corner. |
+ consider = gfx::Rect(100, 50); |
+ ignore = gfx::Rect(); |
+ center = gfx::Rect(); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // 0| 1 3 11 19 24 |
+ // 1| 2 4 10 18 23 |
+ // 2| 5 6 12 17 22 |
+ // 3| 7 8 9 20 21 |
+ // 4| 13 14 15 16 25 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+ |
+ // Every rect is empty. |
+ ignore = gfx::Rect(); |
+ center = gfx::Rect(); |
+ consider = gfx::Rect(); |
+ |
+ expected.clear(); |
+ 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(100, 50); |
+ ignore = gfx::Rect(); |
+ center = gfx::Rect(-40, 0, 39, 50); |
+ |
+ // Layout of the tiling data, and expected return order: |
+ // x 0 1 2 3 4 |
+ // y.--------------- |
+ // * 0| 5 10 15 20 25 |
+ // * 1| 4 9 14 19 24 |
+ // * 2| 3 8 13 18 23 |
+ // * 3| 2 7 12 17 22 |
+ // * 4| 1 6 11 16 21 |
+ expected.clear(); |
+ |
+ expected.push_back(std::make_pair(0, 4)); |
+ expected.push_back(std::make_pair(0, 3)); |
+ expected.push_back(std::make_pair(0, 2)); |
+ expected.push_back(std::make_pair(0, 1)); |
+ expected.push_back(std::make_pair(0, 0)); |
+ expected.push_back(std::make_pair(1, 4)); |
+ expected.push_back(std::make_pair(1, 3)); |
+ expected.push_back(std::make_pair(1, 2)); |
+ expected.push_back(std::make_pair(1, 1)); |
+ expected.push_back(std::make_pair(1, 0)); |
+ expected.push_back(std::make_pair(2, 4)); |
+ expected.push_back(std::make_pair(2, 3)); |
+ expected.push_back(std::make_pair(2, 2)); |
+ expected.push_back(std::make_pair(2, 1)); |
+ expected.push_back(std::make_pair(2, 0)); |
+ expected.push_back(std::make_pair(3, 4)); |
+ expected.push_back(std::make_pair(3, 3)); |
+ expected.push_back(std::make_pair(3, 2)); |
+ expected.push_back(std::make_pair(3, 1)); |
+ expected.push_back(std::make_pair(3, 0)); |
+ expected.push_back(std::make_pair(4, 4)); |
+ expected.push_back(std::make_pair(4, 3)); |
+ expected.push_back(std::make_pair(4, 2)); |
+ expected.push_back(std::make_pair(4, 1)); |
+ expected.push_back(std::make_pair(4, 0)); |
+ |
+ TestSpiralIterate(__LINE__, tiling_data, consider, ignore, center, expected); |
+} |
+ |
} // namespace |
} // namespace cc |