diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-05-27 18:51:30 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-05-27 18:51:30 +0200 |
commit | ce97af30f95a8d9617900c1d43589ce39a00b4c3 (patch) | |
tree | 1863252f0599d3cfe75a4ed1c7f22b1073eb8ddf /test | |
parent | f32c9963489f811ebfea8e17e7e3bbc79a355324 (diff) | |
download | qtlocation-mapboxgl-ce97af30f95a8d9617900c1d43589ce39a00b4c3.tar.gz |
add test for #206
Diffstat (limited to 'test')
-rw-r--r-- | test/clip_ids.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/test/clip_ids.cpp b/test/clip_ids.cpp index 3fd9ba062d..6ae889e1ff 100644 --- a/test/clip_ids.cpp +++ b/test/clip_ids.cpp @@ -208,6 +208,77 @@ TEST(ClipIDs, MultipleLevels) { ASSERT_EQ(5, tiles[11]->clip.length); } + +TEST(ClipIDs, Bug206) { + std::array<std::unique_ptr<Tile>, 11> tiles {{ + std::make_unique<Tile>(Tile::ID { 10, 162, 395 }), // 10/162/395: 10000000 (3) + std::make_unique<Tile>(Tile::ID { 10, 162, 396 }), // 10/162/396: 10100000 (3) + std::make_unique<Tile>(Tile::ID { 10, 163, 395 }), // 10/163/395: 11000000 (2) + std::make_unique<Tile>(Tile::ID { 11, 326, 791 }), // 11/326/791: 11100000 (4) + std::make_unique<Tile>(Tile::ID { 12, 654, 1582 }), // 12/654/1582: 11001000 (5) + std::make_unique<Tile>(Tile::ID { 12, 654, 1583 }), // 12/654/1583: 11010000 (4) + std::make_unique<Tile>(Tile::ID { 12, 655, 1582 }), // 12/655/1582: 11110000 (5) + std::make_unique<Tile>(Tile::ID { 12, 655, 1583 }), // 12/655/1583: 11111000 (5) + std::make_unique<Tile>(Tile::ID { 10, 163, 396 }), // 10/163/396: 01000000 (3) + std::make_unique<Tile>(Tile::ID { 10, 164, 395 }), // 10/164/395: 01100000 (3) + std::make_unique<Tile>(Tile::ID { 10, 164, 396 }), // 10/164/396: 00100000 (3) + }}; + + std::list<Tile *> tile_ptrs; + std::transform(tiles.begin(), tiles.end(), std::back_inserter(tile_ptrs), [](std::unique_ptr<Tile> &tile) { return tile.get(); }); + + updateClipIDs(tile_ptrs); + + // for (const auto &it : tiles) { + // std::cout << std::string(it->id) << ": " << it->clip.mask << " (" << (int)it->clip.length << ")" << std::endl; + // } + + ASSERT_EQ(std::string("10/162/395"), std::string(tiles[0]->id)); + ASSERT_EQ(std::bitset<8>("10000000"), tiles[0]->clip.mask); + ASSERT_EQ(3, tiles[0]->clip.length); + + ASSERT_EQ(std::string("10/162/396"), std::string(tiles[1]->id)); + ASSERT_EQ(std::bitset<8>("10100000"), tiles[1]->clip.mask); + ASSERT_EQ(3, tiles[1]->clip.length); + + ASSERT_EQ(std::string("10/163/395"), std::string(tiles[2]->id)); + ASSERT_EQ(std::bitset<8>("11000000"), tiles[2]->clip.mask); + ASSERT_EQ(2, tiles[2]->clip.length); + + ASSERT_EQ(std::string("11/326/791"), std::string(tiles[3]->id)); + ASSERT_EQ(std::bitset<8>("11100000"), tiles[3]->clip.mask); + ASSERT_EQ(4, tiles[3]->clip.length); + + ASSERT_EQ(std::string("12/654/1582"), std::string(tiles[4]->id)); + ASSERT_EQ(std::bitset<8>("11001000"), tiles[4]->clip.mask); + ASSERT_EQ(5, tiles[4]->clip.length); + + ASSERT_EQ(std::string("12/654/1583"), std::string(tiles[5]->id)); + ASSERT_EQ(std::bitset<8>("11010000"), tiles[5]->clip.mask); + ASSERT_EQ(4, tiles[5]->clip.length); + + ASSERT_EQ(std::string("12/655/1582"), std::string(tiles[6]->id)); + ASSERT_EQ(std::bitset<8>("11110000"), tiles[6]->clip.mask); + ASSERT_EQ(5, tiles[6]->clip.length); + + ASSERT_EQ(std::string("12/655/1583"), std::string(tiles[7]->id)); + ASSERT_EQ(std::bitset<8>("11111000"), tiles[7]->clip.mask); + ASSERT_EQ(5, tiles[7]->clip.length); + + ASSERT_EQ(std::string("10/163/396"), std::string(tiles[8]->id)); + ASSERT_EQ(std::bitset<8>("01000000"), tiles[8]->clip.mask); + ASSERT_EQ(3, tiles[8]->clip.length); + + ASSERT_EQ(std::string("10/164/395"), std::string(tiles[9]->id)); + ASSERT_EQ(std::bitset<8>("01100000"), tiles[9]->clip.mask); + ASSERT_EQ(3, tiles[9]->clip.length); + + ASSERT_EQ(std::string("10/164/396"), std::string(tiles[10]->id)); + ASSERT_EQ(std::bitset<8>("00100000"), tiles[10]->clip.mask); + ASSERT_EQ(3, tiles[10]->clip.length); + +} + TEST(ClipIDs, DuplicateIDs) { std::forward_list<Tile::ID> tiles {{ |