| 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
|
|
|