@@ -78,6 +78,35 @@ TEST(TileCover, PitchWithLargerResultSet) {
7878 }), (std::vector<UnwrappedTileID> { cover.begin (), cover.begin () + 16 }) );
7979}
8080
81+ TEST (TileCover, TileCoverLODCoversSingleLevelTileCover) {
82+ Transform transform;
83+ transform.resize ({ 512 , 768 });
84+
85+ std::vector<EdgeInsets> padding = { EdgeInsets { 0 , 100 , 0 , 0 }, EdgeInsets { 800 , 0 , 0 , 0 } };
86+ std::vector<int32_t > zoom = { 14 , 22 };
87+ std::vector<double > bearing = { 2 , 45 , -22.5 };
88+ std::vector<double > pitch = { 0 , 30 , 90 };
89+
90+ for (auto pad : padding) {
91+ for (auto z : zoom) {
92+ for (auto bear : bearing) {
93+ for (auto p : pitch) {
94+ transform.jumpTo (CameraOptions ().withCenter (LatLng { 0.1 , -0.1 })
95+ .withPadding (pad).withZoom (z).withBearing (bear).withPitch (p));
96+ auto singleLevelCover = util::tileCover (transform.getState (), z);
97+ auto lodTileCover = util::tileCoverWithLOD (transform.getState (), z, z / 10 * 10 );
98+ for (auto tile: singleLevelCover) {
99+ EXPECT_NE (lodTileCover.cend (), std::find_if (lodTileCover.cbegin (), lodTileCover.cend (),
100+ [&tile] (auto parent) { return tile == parent || tile.isChildOf (parent); })) << " for padding: ["
101+ << pad.top () << " , " << pad.left () << " , 0, 0] zoom:" << z << " bearing:"
102+ << bear << " and pitch:" << p;
103+ }
104+ }
105+ }
106+ }
107+ }
108+ }
109+
81110TEST (TileCover, WorldZ1) {
82111 EXPECT_EQ ((std::vector<UnwrappedTileID>{
83112 { 1 , 0 , 0 }, { 1 , 0 , 1 }, { 1 , 1 , 0 }, { 1 , 1 , 1 },
0 commit comments