Skip to content

Commit

Permalink
Add test coverage of loading raster data - refs #192 (indirectly #202)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dane Springmeyer committed Apr 18, 2016
1 parent dba0faf commit df00aea
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
Binary file added test/data/image.mvt
Binary file not shown.
29 changes: 28 additions & 1 deletion test/unit/load/merge.cpp
Expand Up @@ -10,7 +10,7 @@
#include <fstream>
#include <string>

TEST_CASE( "merge_from_compressed_buffer" )
TEST_CASE( "merge_from_compressed_buffer - vector" )
{
std::ifstream stream("./test/data/0.0.0.vector.mvt",std::ios_base::in|std::ios_base::binary);
REQUIRE(stream.is_open());
Expand Down Expand Up @@ -64,5 +64,32 @@ TEST_CASE( "merge_from_compressed_buffer" )
CHECK(errors.size() == 0);
}
}
}

TEST_CASE( "merge_from_compressed_buffer - raster" )
{
std::ifstream stream("./test/data/image.mvt",std::ios_base::in|std::ios_base::binary);
REQUIRE(stream.is_open());
std::string buffer(std::istreambuf_iterator<char>(stream.rdbuf()),(std::istreambuf_iterator<char>()));
REQUIRE(buffer.size() == 146098);
mapnik::vector_tile_impl::merc_tile tile(0,0,0);
mapnik::vector_tile_impl::merge_from_compressed_buffer(tile, buffer.data(), buffer.size(), true, true);
CHECK(tile.get_layers().size() == 1);
{
protozero::pbf_reader tile_msg(tile.get_buffer());
while (tile_msg.next(mapnik::vector_tile_impl::Tile_Encoding::LAYERS))
{
auto layer_data = tile_msg.get_data();
protozero::pbf_reader layer_props_msg(layer_data);
auto layer_info = mapnik::vector_tile_impl::get_layer_name_and_version(layer_props_msg);
std::string const& layer_name = layer_info.first;
std::uint32_t version = layer_info.second;
CHECK(layer_name == "layer");
CHECK(version == 1);
std::set<mapnik::vector_tile_impl::validity_error> errors;
protozero::pbf_reader layer_valid_msg(layer_data);
layer_is_valid(layer_valid_msg, errors);
CHECK(errors.size() == 0);
}
}
}

0 comments on commit df00aea

Please sign in to comment.