Skip to content

Latest commit

 

History

History
76 lines (76 loc) · 17 KB

FIXTURES.md

File metadata and controls

76 lines (76 loc) · 17 KB
id description valid v1 valid v2
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