diff options
author | John Firebaugh <john.firebaugh@gmail.com> | 2016-02-05 17:10:13 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-02-10 15:40:20 -0800 |
commit | c3c4c7b9a695ad1dbebe57242ba071103fe9a567 (patch) | |
tree | e205ecdc6a2f6318c6ba6308b5aa8baacc42f481 /test/storage/offline.cpp | |
parent | e9302c797f68c7e48b908b87b126045c8c5e5209 (diff) | |
download | qtlocation-mapboxgl-c3c4c7b9a695ad1dbebe57242ba071103fe9a567.tar.gz |
[core] Interface and implementation for offline
Diffstat (limited to 'test/storage/offline.cpp')
-rw-r--r-- | test/storage/offline.cpp | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/test/storage/offline.cpp b/test/storage/offline.cpp new file mode 100644 index 0000000000..b34aa02c22 --- /dev/null +++ b/test/storage/offline.cpp @@ -0,0 +1,73 @@ +#include <mbgl/storage/offline.hpp> +#include <mbgl/map/source_info.hpp> +#include <mbgl/map/tile_id.hpp> + +#include <gtest/gtest.h> + +using namespace mbgl; + +static const LatLngBounds sanFrancisco = LatLngBounds::hull( + { 37.6609, -122.5744 }, + { 37.8271, -122.3204 }); + +static const LatLngBounds sanFranciscoWrapped = LatLngBounds::hull( + { 37.6609, 238.5744 }, + { 37.8271, 238.3204 }); + +TEST(OfflineTilePyramidRegionDefinition, TileCoverEmpty) { + OfflineTilePyramidRegionDefinition region("", LatLngBounds::empty(), 0, 20, 1.0); + SourceInfo info; + + auto result = region.tileCover(SourceType::Vector, 512, info); + ASSERT_TRUE(result.empty()); +} + +TEST(OfflineTilePyramidRegionDefinition, TileCoverZoomIntersection) { + OfflineTilePyramidRegionDefinition region("", sanFrancisco, 2, 2, 1.0); + SourceInfo info; + + info.minZoom = 0; + auto resultIntersection = region.tileCover(SourceType::Vector, 512, info); + ASSERT_EQ(1, resultIntersection.size()); + + info.minZoom = 3; + auto resultNoIntersection = region.tileCover(SourceType::Vector, 512, info); + ASSERT_TRUE(resultNoIntersection.empty()); +} + +TEST(OfflineTilePyramidRegionDefinition, TileCoverTileSize) { + OfflineTilePyramidRegionDefinition region("", LatLngBounds::world(), 0, 0, 1.0); + SourceInfo info; + + auto result512 = region.tileCover(SourceType::Vector, 512, info); + ASSERT_EQ(1, result512.size()); + ASSERT_EQ(0, result512[0].z); + + auto result256 = region.tileCover(SourceType::Vector, 256, info); + ASSERT_EQ(4, result256.size()); + ASSERT_EQ(1, result256[0].z); +} + +TEST(OfflineTilePyramidRegionDefinition, TileCoverZoomRounding) { + OfflineTilePyramidRegionDefinition region("", sanFrancisco, 0.6, 0.7, 1.0); + SourceInfo info; + + auto resultVector = region.tileCover(SourceType::Vector, 512, info); + ASSERT_EQ(1, resultVector.size()); + ASSERT_EQ(0, resultVector[0].z); + + auto resultRaster = region.tileCover(SourceType::Raster, 512, info); + ASSERT_EQ(1, resultRaster.size()); + ASSERT_EQ(1, resultRaster[0].z); +} + +TEST(OfflineTilePyramidRegionDefinition, TileCoverWrapped) { + OfflineTilePyramidRegionDefinition region("", sanFranciscoWrapped, 0, 0, 1.0); + SourceInfo info; + + auto result = region.tileCover(SourceType::Vector, 512, info); + ASSERT_EQ(1, result.size()); + ASSERT_EQ(0, result[0].z); + ASSERT_EQ(0, result[0].x); + ASSERT_EQ(0, result[0].y); +} |