001 |
A vector tile without any layers, which essentially results in a completely empty buffer. - spec source |
✅ |
✅ |
002 |
A single layer with a single point feature that has no id field. According to the specification, "A feature MAY contain an id field. If a feature has an id field, the value of the id SHOULD be unique among the features of the parent layer." - spec source |
✅ |
✅ |
003 |
A single point feature with a missing geometry type. From the spec, "A feature MUST contain a type field as described in the Geometry Types section." Proto2 decoders will interpret this missing tag as a default UNKNOWN. - spec source - recommended error handling recoverable |
❌ |
❌ |
004 |
[feature:geometry] A single point feature without a geometry field. The spec says, "A feature MUST contain a geometry field." - spec source - recommended error handling recoverable |
❌ |
❌ |
005 |
[feature:tags] the tags array has only a single tag, where multiples of two are required. - spec source - recommended error handling recoverable |
❌ |
❌ |
006 |
[feature:geometry] A single point feature with an invalid GeomType enum in the "type" field. - spec source - recommended error handling recoverable |
❌ |
❌ |
007 |
Layer version as string instead of int - spec source - recommended error handling fatal |
❌ |
❌ |
008 |
[layer:extent] the layer extent field is encoded as a string instead of a uint32 - spec source - recommended error handling fatal |
❌ |
❌ |
009 |
[layer:extent] the layer extent field is missing from the protocol buffer. The spec says, "A layer MUST contain an extent that describes the width and height of the tile in integer coordinates." so this could be interpreted as invalid, but since proto2 parsers should assign the default, this can be considered valid. - spec source |
✅ |
✅ |
010 |
A Layer value property is listed as "string" but encoded as std::int64_t - spec source - recommended error handling fatal |
❌ |
❌ |
011 |
Has a value type not described in the spec. Should be easy for decoders to skip - spec source - recommended error handling fatal |
❌ |
❌ |
012 |
The layer version is invalid and does not match any current versions of the specification - spec source - recommended error handling fatal |
❌ |
❌ |
013 |
Has a key property incorrectly encoded as a type std::uint32_t. - spec source - recommended error handling fatal |
❌ |
❌ |
014 |
A layer without a name field. "A layer MUST contain a name field." - spec source - recommended error handling fatal |
❌ |
❌ |
015 |
Includes two layers with the same name value, which is invalid according to the specification. "A layer MUST contain a name field. A Vector Tile MUST NOT contain two or more layers whose name values are byte-for-byte identical." Decoders can decide to dedupe or fail. - spec source - recommended error handling recoverable |
❌ |
❌ |
016 |
Single geometry with UNKNOWN type. This is considered "valid" in the lens of the specification. Encoders/decoders can choose to use or throw on this geometry type. - spec source |
✅ |
✅ |
017 |
valid point geometry - spec source |
✅ |
✅ |
018 |
valid linestring geometry - spec source |
✅ |
✅ |
019 |
valid polygon geometry - spec source |
✅ |
✅ |
020 |
valid multi-point geometry - spec source |
✅ |
✅ |
021 |
valid multi-linestring geometry - spec source |
✅ |
✅ |
022 |
valid multi-polygon geometry - spec source |
✅ |
✅ |
023 |
No Layer Name - spec source - recommended error handling fatal |
❌ |
❌ |
024 |
Missing layer version property. Proto2 parsers will default to 1, assuming they are using a .proto file. Proto3 will default to zero (since this is an int), which is invalid. - spec source - recommended error handling fatal |
❌ |
❌ |
025 |
Layer has no features, encoders should not create this, but decoders should read this still - spec source |
✅ |
✅ |
026 |
Adds an extra Value type called "my_value" which is invalid. In the future there might be backwards compatible Values and they should be ignored by decoders, but for version 2.x this should be a fatal error. - spec source - recommended error handling fatal |
❌ |
❌ |
027 |
Single Value with bool type and a single Point feature. - spec source |
✅ |
✅ |
030 |
Contains two geometry fields when there should only be one - spec source - recommended error handling recoverable |
❌ |
❌ |
032 |
Single Value with string type and a single Point feature - spec source |
✅ |
✅ |
033 |
Single Value with float type and a single Point feature - spec source |
✅ |
✅ |
034 |
Single Value with double type and a single Point feature - spec source |
✅ |
✅ |
035 |
Single Value with integer type and a single Point feature - spec source |
✅ |
✅ |
036 |
Single Value with uint64 type and a single Point feature - spec source |
✅ |
✅ |
037 |
Single Value with sint64 type and a single Point feature - spec source |
✅ |
✅ |
038 |
A fixure with all possible property value types - spec source |
✅ |
✅ |
039 |
All tags with a user-defined custom default are actually encoded, even if the value of the tag is the default (this is how proto3 would handle this situation). Fields include "version", "id", "type - GeomType", and "extent". - spec source |
✅ |
✅ |
040 |
Feature has tags that point to non-existent Key in the layer. - spec source - recommended error handling fatal |
❌ |
❌ |
041 |
Tile message has an unknown tag value, tags are encoded as floats instead of integers. Not that this is not detectable from the protobuf encoding alone. A decoder will interpret these floats as varints (which succeeds in this case) and only notice later that they point to non-existing indexes. - spec source - recommended error handling fatal |
❌ |
❌ |
042 |
Feature has tags that point to non-existent Value in the layer. - spec source - recommended error handling fatal |
❌ |
❌ |
043 |
A layer with six points that all share the same key but each has a unique value (type string). - spec source |
✅ |
✅ |
044 |
Geometry field begins with a ClosePath command, which is invalid - spec source - recommended error handling fatal |
❌ |
❌ |
045 |
Invalid point geometry that includes a MoveTo command and only half of the xy coordinates - spec source - recommended error handling undefined |
❌ |
❌ |
046 |
Invalid linestring geometry that includes two points in the same position, which is not OGC valid - spec source - recommended error handling recoverable |
❌ |
❌ |
047 |
Invalid polygon with wrong ClosePath count 2 (must be count 1) - spec source - recommended error handling fatal |
❌ |
❌ |
048 |
Invalid polygon with wrong ClosePath count 0 (must be count 1) - spec source - recommended error handling fatal |
❌ |
❌ |
049 |
linestring with int32 overflow in x coordinate. This should not happen in real tiles since the coordinates should be between 0 and the extent. These are helpful for allowing decoders to figure out what to do in these cases. - spec source |
✅ |
✅ |
050 |
linestring with int32 overflow in y coordinate. This should not happen in real tiles since the coordinates should be between 0 and the extent. These are helpful for allowing decoders to figure out what to do in these cases. - spec source |
✅ |
✅ |
051 |
multipoint with a huge count value, useful for ensuring no over-allocation errors. Example error message "count too large" - spec source - recommended error handling fatal |
❌ |
❌ |
052 |
multipoint with not enough points - spec source - recommended error handling fatal |
❌ |
❌ |
053 |
clipped square (exact extent): a polygon that covers the entire tile to the exact boundary - spec source |
✅ |
✅ |
054 |
clipped square (one unit buffer): a polygon that covers the entire tile plus a one unit buffer - spec source |
✅ |
✅ |
055 |
clipped square (minus one unit buffer): a polygon that almost covers the entire tile minus one unit buffer - spec source |
✅ |
✅ |
056 |
clipped square (large buffer): a polygon that covers the entire tile plus a 200 unit buffer - spec source |
✅ |
✅ |
057 |
A point fixture with a gigantic MoveTo command. Can be used to test decoders for memory overallocation situations - spec source |
✅ |
✅ |
058 |
A linestring fixture with a gigantic LineTo command that does not have the equal number of commands after. This can be used to test decoders for memory overallocation situations - spec source - recommended error handling fatal |
❌ |
❌ |
059 |
A layer named "water" with a single feature and unique properties (used as a layer compositing test with fixture 060) - spec source |
✅ |
✅ |
060 |
A layer named "water" with a single feature and unique properties (used as a layer compositing test with fixture 059) - spec source |
✅ |
✅ |
061 |
A linestring feature that includes a ClosePath command. A tile with such a command was added as a test fixture in mapbox/mapbox-gl-native#2721, suggesting that such tiles may exist in practice, e.g. in old mapbox-gl-native offline databases. - spec source - recommended error handling fatal |
✅ |
❌ |
062 |
points with different values for the same property - helpful for filtering tests - spec source |
✅ |
✅ |
063 |
Point features with added language properties prefixed with "mbx_name" and "name". - spec source |
✅ |
✅ |
064 |
Point features with added language & worldview properties prefixed with "_mbx_xxx". - spec source |
✅ |
✅ |
065 |
Worldviews: all legacy values - spec source |
✅ |
✅ |
066 |
Worldviews: all legacy and new values - spec source |
✅ |
✅ |
067 |
Worldviews: "all" values - spec source |
✅ |
✅ |
068 |
Worldviews: mixture of features - spec source |
✅ |
✅ |
069 |
Worldviews: _mbx_worldview is not a string - spec source |
✅ |
✅ |
070 |
Worldviews: _mbx_worldview and worldview properties in same feature with conflicting values - spec source |
✅ |
✅ |
071 |
Worldviews: all worldviews as separate features - spec source |
✅ |
✅ |
072 |
Worldviews: comma-separated list of non ISO 3166-1 alpha-2 codes - spec source |
✅ |
✅ |
073 |
Class: _mbx_worldview "all", _mbx_class "sea" - spec source |
✅ |
✅ |
074 |
Class: _mbx_worldview "US,CN", _mbx_class "sea" - spec source |
✅ |
✅ |
075 |
Class: _mbx_worldview "US", _mbx_class "sea" - spec source |
✅ |
✅ |
076 |
Class: _mbx_worldview "US", _mbx_class not a string - spec source |
✅ |
✅ |
077 |
Class: name "France", _mbx_name_de "Frankreich", _mbx_class "sea" - spec source |
✅ |
✅ |