Add guard blocks and checks to SymbolInstance (#2744)
This commit is contained in:
@@ -86,8 +86,8 @@ TEST(CrossTileSymbolLayerIndex, addBucket) {
|
||||
index.addBucket(mainID, mat4{}, mainBucket);
|
||||
|
||||
// Assigned new IDs
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(1).crossTileID, 2u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(1).getCrossTileID(), 2u);
|
||||
|
||||
OverscaledTileID childID(7, 0, 7, 16, 16);
|
||||
std::vector<SymbolInstance> childInstances;
|
||||
@@ -114,13 +114,13 @@ TEST(CrossTileSymbolLayerIndex, addBucket) {
|
||||
index.addBucket(childID, mat4{}, childBucket);
|
||||
|
||||
// matched parent tile
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
// does not match because of different key
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(1).crossTileID, 3u);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(1).getCrossTileID(), 3u);
|
||||
// does not match because of different location
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(2).crossTileID, 4u);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(2).getCrossTileID(), 4u);
|
||||
// matches with a slightly different location
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(3).crossTileID, 2u);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(3).getCrossTileID(), 2u);
|
||||
|
||||
OverscaledTileID parentID(5, 0, 5, 4, 4);
|
||||
std::vector<SymbolInstance> parentInstances;
|
||||
@@ -144,7 +144,7 @@ TEST(CrossTileSymbolLayerIndex, addBucket) {
|
||||
index.addBucket(parentID, mat4{}, parentBucket);
|
||||
|
||||
// matched child tile
|
||||
ASSERT_EQ(parentBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(parentBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
|
||||
std::unordered_set<uint32_t> currentIDs;
|
||||
currentIDs.insert(mainBucket.bucketInstanceId);
|
||||
@@ -174,9 +174,9 @@ TEST(CrossTileSymbolLayerIndex, addBucket) {
|
||||
index.addBucket(grandchildID, mat4{}, grandchildBucket);
|
||||
|
||||
// Matches the symbol in `mainBucket`
|
||||
ASSERT_EQ(grandchildBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(grandchildBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
// Does not match the previous value for Windsor because that tile was removed
|
||||
ASSERT_EQ(grandchildBucket.symbolInstances.at(1).crossTileID, 5u);
|
||||
ASSERT_EQ(grandchildBucket.symbolInstances.at(1).getCrossTileID(), 5u);
|
||||
}
|
||||
|
||||
TEST(CrossTileSymbolLayerIndex, resetIDs) {
|
||||
@@ -232,7 +232,7 @@ TEST(CrossTileSymbolLayerIndex, resetIDs) {
|
||||
|
||||
// assigns a new id
|
||||
index.addBucket(mainID, mat4{}, mainBucket);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
|
||||
// removes the tile
|
||||
std::unordered_set<uint32_t> currentIDs;
|
||||
@@ -240,11 +240,11 @@ TEST(CrossTileSymbolLayerIndex, resetIDs) {
|
||||
|
||||
// assigns a new id
|
||||
index.addBucket(childID, mat4{}, childBucket);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(0).crossTileID, 2u);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(0).getCrossTileID(), 2u);
|
||||
|
||||
// overwrites the old id to match the already-added tile
|
||||
index.addBucket(mainID, mat4{}, mainBucket);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).crossTileID, 2u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).getCrossTileID(), 2u);
|
||||
}
|
||||
|
||||
TEST(CrossTileSymbolLayerIndex, noDuplicatesWithinZoomLevel) {
|
||||
@@ -303,16 +303,16 @@ TEST(CrossTileSymbolLayerIndex, noDuplicatesWithinZoomLevel) {
|
||||
|
||||
// assigns new ids
|
||||
index.addBucket(mainID, mat4{}, mainBucket);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(1).crossTileID, 2u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
ASSERT_EQ(mainBucket.symbolInstances.at(1).getCrossTileID(), 2u);
|
||||
|
||||
// copies parent ids without duplicate ids in this tile
|
||||
index.addBucket(childID, mat4{}, childBucket);
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(0).crossTileID,
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(0).getCrossTileID(),
|
||||
1u); // A' copies from A
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(1).crossTileID,
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(1).getCrossTileID(),
|
||||
2u); // B' copies from B
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(2).crossTileID,
|
||||
ASSERT_EQ(childBucket.symbolInstances.at(2).getCrossTileID(),
|
||||
3u); // C' gets new ID
|
||||
}
|
||||
|
||||
@@ -371,16 +371,16 @@ TEST(CrossTileSymbolLayerIndex, bucketReplacement) {
|
||||
|
||||
// assigns new ids
|
||||
index.addBucket(tileID, mat4{}, firstBucket);
|
||||
ASSERT_EQ(firstBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
ASSERT_EQ(firstBucket.symbolInstances.at(1).crossTileID, 2u);
|
||||
ASSERT_EQ(firstBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
ASSERT_EQ(firstBucket.symbolInstances.at(1).getCrossTileID(), 2u);
|
||||
|
||||
// copies parent ids without duplicate ids in this tile
|
||||
index.addBucket(tileID, mat4{}, secondBucket);
|
||||
ASSERT_EQ(secondBucket.symbolInstances.at(0).crossTileID,
|
||||
ASSERT_EQ(secondBucket.symbolInstances.at(0).getCrossTileID(),
|
||||
1u); // A' copies from A
|
||||
ASSERT_EQ(secondBucket.symbolInstances.at(1).crossTileID,
|
||||
ASSERT_EQ(secondBucket.symbolInstances.at(1).getCrossTileID(),
|
||||
2u); // B' copies from B
|
||||
ASSERT_EQ(secondBucket.symbolInstances.at(2).crossTileID,
|
||||
ASSERT_EQ(secondBucket.symbolInstances.at(2).getCrossTileID(),
|
||||
3u); // C' gets new ID
|
||||
}
|
||||
|
||||
@@ -429,12 +429,12 @@ TEST(CrossTileSymbolLayerIndex, offscreenSymbols) {
|
||||
populatePosMatrix(posMatrix, tileId, 60.0, 25.0, 7.0);
|
||||
index.addBucket(tileId, posMatrix, symbolBucket);
|
||||
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(0).crossTileID, SymbolInstance::invalidCrossTileID());
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(1).crossTileID, SymbolInstance::invalidCrossTileID());
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(0).getCrossTileID(), SymbolInstance::invalidCrossTileID);
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(1).getCrossTileID(), SymbolInstance::invalidCrossTileID);
|
||||
|
||||
populatePosMatrix(posMatrix, tileId, 39.0, -76.0, 7.0);
|
||||
index.addBucket(tileId, posMatrix, symbolBucket);
|
||||
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(0).crossTileID, 1u);
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(1).crossTileID, 2u);
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(0).getCrossTileID(), 1u);
|
||||
EXPECT_EQ(symbolBucket.symbolInstances.at(1).getCrossTileID(), 2u);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user