From 96404ff462e120c7710134e40f54ce67aa0fbff9 Mon Sep 17 00:00:00 2001 From: tatiana-yan Date: Mon, 13 Jan 2020 18:46:37 +0300 Subject: [PATCH] [generator][tests] Add OsmType_ComplexTypesSmoke test. --- generator/generator_tests/osm_type_test.cpp | 360 ++++++++++++++++++++ 1 file changed, 360 insertions(+) diff --git a/generator/generator_tests/osm_type_test.cpp b/generator/generator_tests/osm_type_test.cpp index 8246d15f1f..710b63656b 100644 --- a/generator/generator_tests/osm_type_test.cpp +++ b/generator/generator_tests/osm_type_test.cpp @@ -1560,3 +1560,363 @@ UNIT_CLASS_TEST(TestWithClassificator, OsmType_SimpleTypesSmoke) TEST(params.IsTypeExist(classif().GetTypeByPath({type.m_key, type.m_value})), (type, params)); } } + +UNIT_CLASS_TEST(TestWithClassificator, OsmType_ComplexTypesSmoke) +{ + using Type = std::vector; + std::vector> const complexTypes = { + // Filtered out by MatchTypes filter because have no styles. + // {{"boundary", "administrative", "10"}, {{"boundary", "administrative"}, {"admin_level", "10"}}}, + // {{"boundary", "administrative", "11"}, {{"boundary", "administrative"}, {"admin_level", "11"}}}, + // {{"boundary", "administrative", "5"}, {{"boundary", "administrative"}, {"admin_level", "5"}}}, + // {{"boundary", "administrative", "6"}, {{"boundary", "administrative"}, {"admin_level", "6"}}}, + // {{"boundary", "administrative", "7"}, {{"boundary", "administrative"}, {"admin_level", "7"}}}, + // {{"boundary", "administrative", "8"}, {{"boundary", "administrative"}, {"admin_level", "8"}}}, + // {{"boundary", "administrative", "9"}, {{"boundary", "administrative"}, {"admin_level", "9"}}}, + // {{"boundary", "administrative", "city"}, {{"boundary", "administrative"}, {"border_type", "city"}}}, + // {{"boundary", "administrative", "country"}, {{"boundary", "administrative"}, {"border_type", "country"}}}, + // {{"boundary", "administrative", "county"}, {{"boundary", "administrative"}, {"border_type", "county"}}}, + // {{"boundary", "administrative", "municipality"}, {{"boundary", "administrative"}, {"border_type", "municipality"}}}, + // {{"boundary", "administrative", "nation"}, {{"boundary", "administrative"}, {"border_type", "nation"}}}, + // {{"boundary", "administrative", "region"}, {{"boundary", "administrative"}, {"border_type", "region"}}}, + // {{"boundary", "administrative", "state"}, {{"boundary", "administrative"}, {"border_type", "state"}}}, + // {{"boundary", "administrative", "suburb"}, {{"boundary", "administrative"}, {"border_type", "suburb"}}}, + // {{"communication", "line", "underground"}, {{"communication", "line"}, {"location", "underground"}}}, + // {{"landuse", "residential", "rural"}, {{"landuse", "residential"}, {"residential", "rural"}}}, + // {{"landuse", "residential", "urban"}, {{"landuse", "residential"}, {"residential", "urban"}}}, + // {{"man_made", "pipeline", "overground"}, {{"man_made", "pipeline"}, {"location", "overground"}}}, + // {{"marking", "sport", "black"}, {{"marking", "sport"}, {"colour", "black"}}}, + // {{"marking", "sport", "blue"}, {{"marking", "sport"}, {"colour", "blue"}}}, + // {{"marking", "sport", "red"}, {{"marking", "sport"}, {"colour", "red"}}}, + // {{"marking", "sport", "white"}, {{"marking", "sport"}, {"colour", "white"}}}, + // {{"marking", "sport"}, {{"marking", "sport"}}}, + // {{"railway", "incline", "bridge"}, {{"railway", "incline"}, {"bridge", "any_value"}}}, + // {{"railway", "incline", "tunnel"}, {{"railway", "incline"}, {"tunnel", "any_value"}}}, + // {{"railway", "siding", "bridge"}, {{"railway", "siding"}, {"bridge", "any_value"}}}, + // {{"railway", "siding", "tunnel"}, {{"railway", "siding"}, {"tunnel", "any_value"}}}, + // {{"railway", "spur", "bridge"}, {{"railway", "spur"}, {"bridge", "any_value"}}}, + // {{"railway", "spur", "tunnel"}, {{"railway", "spur"}, {"tunnel", "any_value"}}}, + // {{"railway", "subway", "blue"}, {{"railway", "subway"}, {"colour", "blue"}}}, + // {{"railway", "subway", "bridge"}, {{"railway", "subway"}, {"bridge", "any_value"}}}, + // {{"railway", "subway", "brown"}, {{"railway", "subway"}, {"colour", "brown"}}}, + // {{"railway", "subway", "darkgreen"}, {{"railway", "subway"}, {"colour", "darkgreen"}}}, + // {{"railway", "subway", "gray"}, {{"railway", "subway"}, {"colour", "gray"}}}, + // {{"railway", "subway", "green"}, {{"railway", "subway"}, {"colour", "green"}}}, + // {{"railway", "subway", "grey"}, {{"railway", "subway"}, {"colour", "grey"}}}, + // {{"railway", "subway", "lightblue"}, {{"railway", "subway"}, {"colour", "lightblue"}}}, + // {{"railway", "subway", "lightgreen"}, {{"railway", "subway"}, {"colour", "lightgreen"}}}, + // {{"railway", "subway", "orange"}, {{"railway", "subway"}, {"colour", "orange"}}}, + // {{"railway", "subway", "purple"}, {{"railway", "subway"}, {"colour", "purple"}}}, + // {{"railway", "subway", "red"}, {{"railway", "subway"}, {"colour", "red"}}}, + // {{"railway", "subway", "tunnel"}, {{"railway", "subway"}, {"tunnel", "any_value"}}}, + // {{"railway", "subway", "violet"}, {{"railway", "subway"}, {"colour", "violet"}}}, + // {{"railway", "subway", "yellow"}, {{"railway", "subway"}, {"colour", "yellow"}}}, + // {{"waterway", "ditch", "tunnel"}, {{"waterway", "ditch"}, {"tunnel", "any_value"}}}, + // {{"waterway", "drain", "tunnel"}, {{"waterway", "drain"}, {"tunnel", "any_value"}}}, + // {{"waterway", "stream", "tunnel"}, {{"waterway", "stream"}, {"tunnel", "any_value"}}}, + // + // two types (+hwtag yesbicycle) {{"highway", "path", "bicycle"}, {{"highway", "path"}, {"bicycle", "any_value"}}}, + // two types (+hwtag yesfoot) {{"highway", "footway", "permissive"}, {{"highway", "footway"}, {"access", "permissive"}}}, + // two types (+hwtag-private) {{"highway", "track", "no-access"}, {{"highway", "track"}, {"access", "no"}}}, + // two types (+office) {{"tourism", "information", "office"}, {{"tourism", "information"}, {"office", "any_value"}}}, + // two types (+sport-shooting) {{"leisure", "sports_centre", "shooting"}, {{"leisure", "sports_centre"}, {"sport", "shooting"}}}, + // two types (+sport-swimming) {{"leisure", "sports_centre", "swimming"}, {{"leisure", "sports_centre"}, {"sport", "swimming"}}}, + // + // Manually constructed type, not parsed from osm. + // {{"building", "address"}, {{"addr:housenumber", "any_value"}, {"addr:street", "any_value"}}}, + {{"aeroway", "aerodrome", "international"}, {{"aeroway", "aerodrome"}, {"aerodrome", "international"}}}, + {{"amenity", "grave_yard", "christian"}, {{"amenity", "grave_yard"}, {"religion", "christian"}}}, + {{"amenity", "parking", "fee"}, {{"amenity", "parking"}, {"fee", "any_value"}}}, + {{"amenity", "parking", "multi-storey"}, {{"amenity", "parking"}, {"parking", "multi-storey"}}}, + {{"amenity", "parking", "no-access"}, {{"amenity", "parking"}, {"access", "no"}}}, + {{"amenity", "parking", "park_and_ride"}, {{"amenity", "parking"}, {"parking", "park_and_ride"}}}, + {{"amenity", "parking", "permissive"}, {{"amenity", "parking"}, {"access", "permissive"}}}, + {{"amenity", "parking", "private"}, {{"amenity", "parking"}, {"access", "private"}}}, + {{"amenity", "parking", "underground"}, {{"amenity", "parking"}, {"location", "underground"}}}, + {{"amenity", "parking", "underground"}, {{"amenity", "parking"}, {"parking", "underground"}}}, + {{"amenity", "parking_space", "permissive"}, {{"amenity", "parking_space"}, {"access", "permissive"}}}, + {{"amenity", "parking_space", "private"}, {{"amenity", "parking_space"}, {"access", "private"}}}, + {{"amenity", "parking_space", "underground"}, {{"amenity", "parking_space"}, {"parking", "underground"}}}, + {{"amenity", "place_of_worship", "buddhist"}, {{"amenity", "place_of_worship"}, {"religion", "buddhist"}}}, + {{"amenity", "place_of_worship", "christian"}, {{"amenity", "place_of_worship"}, {"religion", "christian"}}}, + {{"amenity", "place_of_worship", "hindu"}, {{"amenity", "place_of_worship"}, {"religion", "hindu"}}}, + {{"amenity", "place_of_worship", "jewish"}, {{"amenity", "place_of_worship"}, {"religion", "jewish"}}}, + {{"amenity", "place_of_worship", "muslim"}, {{"amenity", "place_of_worship"}, {"religion", "muslim"}}}, + {{"amenity", "place_of_worship", "shinto"}, {{"amenity", "place_of_worship"}, {"religion", "shinto"}}}, + {{"amenity", "place_of_worship", "taoist"}, {{"amenity", "place_of_worship"}, {"religion", "taoist"}}}, + {{"amenity", "vending_machine", "cigarettes"}, {{"amenity", "vending_machine"}, {"vending", "cigarettes"}}}, + {{"amenity", "vending_machine", "drinks"}, {{"amenity", "vending_machine"}, {"vending", "drinks"}}}, + {{"amenity", "vending_machine", "parking_tickets"}, {{"amenity", "vending_machine"}, {"vending", "parking_tickets"}}}, + {{"amenity", "vending_machine", "public_transport_tickets"}, {{"amenity", "vending_machine"}, {"vending", "public_transport_tickets"}}}, + {{"amenity"}, {{"amenity", "any_value"}}}, + {{"boundary", "administrative", "2"}, {{"boundary", "administrative"}, {"admin_level", "2"}}}, + {{"boundary", "administrative", "3"}, {{"boundary", "administrative"}, {"admin_level", "3"}}}, + {{"boundary", "administrative", "4", "state"}, {{"boundary", "administrative"}, {"admin_level", "4"}, {"border_type", "state"}}}, + {{"boundary", "administrative", "4"}, {{"boundary", "administrative"}, {"admin_level", "4"}}}, + {{"building", "garage"}, {{"building", "garage"}}}, + {{"building", "garage"}, {{"building", "yes"}, {"garage", "any_value"}}}, + {{"building"}, {{"building", "any_value"}}}, + {{"building:part"}, {{"building:part", "any_value"}}}, + {{"entrance"}, {{"entrance", "any_value"}}}, + {{"highway", "bridleway", "bridge"}, {{"highway", "bridleway"}, {"bridge", "any_value"}}}, + {{"highway", "bridleway", "permissive"}, {{"highway", "bridleway"}, {"access", "permissive"}}}, + {{"highway", "bridleway", "tunnel"}, {{"highway", "bridleway"}, {"tunnel", "any_value"}}}, + {{"highway", "cycleway", "bridge"}, {{"highway", "cycleway"}, {"bridge", "any_value"}}}, + {{"highway", "cycleway", "permissive"}, {{"highway", "cycleway"}, {"access", "permissive"}}}, + {{"highway", "cycleway", "tunnel"}, {{"highway", "cycleway"}, {"tunnel", "any_value"}}}, + {{"highway", "footway", "alpine_hiking"}, {{"highway", "footway"}, {"sac_scale", "alpine_hiking"}}}, + {{"highway", "footway", "area"}, {{"highway", "footway"}, {"area", "any_value"}}}, + {{"highway", "footway", "bridge"}, {{"highway", "footway"}, {"bridge", "any_value"}}}, + {{"highway", "footway", "demanding_alpine_hiking"}, {{"highway", "footway"}, {"sac_scale", "demanding_alpine_hiking"}}}, + {{"highway", "footway", "demanding_mountain_hiking"}, {{"highway", "footway"}, {"sac_scale", "demanding_mountain_hiking"}}}, + {{"highway", "footway", "difficult_alpine_hiking"}, {{"highway", "footway"}, {"sac_scale", "difficult_alpine_hiking"}}}, + {{"highway", "footway", "hiking"}, {{"highway", "footway"}, {"sac_scale", "hiking"}}}, + {{"highway", "footway", "mountain_hiking"}, {{"highway", "footway"}, {"sac_scale", "mountain_hiking"}}}, + {{"highway", "footway", "permissive"}, {{"highway", "footway"}, {"access", "permissive"}}}, + {{"highway", "footway", "tunnel"}, {{"highway", "footway"}, {"tunnel", "any_value"}}}, + {{"highway", "living_street", "bridge"}, {{"highway", "living_street"}, {"bridge", "any_value"}}}, + {{"highway", "living_street", "tunnel"}, {{"highway", "living_street"}, {"tunnel", "any_value"}}}, + {{"highway", "motorway", "bridge"}, {{"highway", "motorway"}, {"bridge", "any_value"}}}, + {{"highway", "motorway", "tunnel"}, {{"highway", "motorway"}, {"tunnel", "any_value"}}}, + {{"highway", "motorway_link", "bridge"}, {{"highway", "motorway_link"}, {"bridge", "any_value"}}}, + {{"highway", "motorway_link", "tunnel"}, {{"highway", "motorway_link"}, {"tunnel", "any_value"}}}, + {{"highway", "path", "alpine_hiking"}, {{"highway", "path"}, {"sac_scale", "alpine_hiking"}}}, + {{"highway", "path", "bridge"}, {{"highway", "path"}, {"bridge", "any_value"}}}, + {{"highway", "path", "demanding_alpine_hiking"}, {{"highway", "path"}, {"sac_scale", "demanding_alpine_hiking"}}}, + {{"highway", "path", "demanding_mountain_hiking"}, {{"highway", "path"}, {"sac_scale", "demanding_mountain_hiking"}}}, + {{"highway", "path", "difficult_alpine_hiking"}, {{"highway", "path"}, {"sac_scale", "difficult_alpine_hiking"}}}, + {{"highway", "path", "hiking"}, {{"highway", "path"}, {"route", "hiking"}}}, + {{"highway", "path", "hiking"}, {{"highway", "path"}, {"sac_scale", "hiking"}}}, + {{"highway", "path", "horse"}, {{"highway", "path"}, {"horse", "any_value"}}}, + {{"highway", "path", "mountain_hiking"}, {{"highway", "path"}, {"sac_scale", "mountain_hiking"}}}, + {{"highway", "path", "permissive"}, {{"highway", "path"}, {"access", "permissive"}}}, + {{"highway", "path", "tunnel"}, {{"highway", "path"}, {"tunnel", "any_value"}}}, + {{"highway", "pedestrian", "area"}, {{"highway", "pedestrian"}, {"area", "any_value"}}}, + {{"highway", "pedestrian", "bridge"}, {{"highway", "pedestrian"}, {"bridge", "any_value"}}}, + {{"highway", "pedestrian", "tunnel"}, {{"highway", "pedestrian"}, {"tunnel", "any_value"}}}, + {{"highway", "primary", "bridge"}, {{"highway", "primary"}, {"bridge", "any_value"}}}, + {{"highway", "primary", "tunnel"}, {{"highway", "primary"}, {"tunnel", "any_value"}}}, + {{"highway", "primary_link", "bridge"}, {{"highway", "primary_link"}, {"bridge", "any_value"}}}, + {{"highway", "primary_link", "tunnel"}, {{"highway", "primary_link"}, {"tunnel", "any_value"}}}, + {{"highway", "residential", "area"}, {{"highway", "residential"}, {"area", "any_value"}}}, + {{"highway", "residential", "bridge"}, {{"highway", "residential"}, {"bridge", "any_value"}}}, + {{"highway", "residential", "tunnel"}, {{"highway", "residential"}, {"tunnel", "any_value"}}}, + {{"highway", "road", "bridge"}, {{"highway", "road"}, {"bridge", "any_value"}}}, + {{"highway", "road", "tunnel"}, {{"highway", "road"}, {"tunnel", "any_value"}}}, + {{"highway", "secondary", "bridge"}, {{"highway", "secondary"}, {"bridge", "any_value"}}}, + {{"highway", "secondary", "tunnel"}, {{"highway", "secondary"}, {"tunnel", "any_value"}}}, + {{"highway", "secondary_link", "bridge"}, {{"highway", "secondary_link"}, {"bridge", "any_value"}}}, + {{"highway", "secondary_link", "tunnel"}, {{"highway", "secondary_link"}, {"tunnel", "any_value"}}}, + {{"highway", "service", "area"}, {{"highway", "service"}, {"area", "any_value"}}}, + {{"highway", "service", "bridge"}, {{"highway", "service"}, {"bridge", "any_value"}}}, + {{"highway", "service", "driveway"}, {{"highway", "service"}, {"service", "driveway"}}}, + {{"highway", "service", "parking_aisle"}, {{"highway", "service"}, {"service", "parking_aisle"}}}, + {{"highway", "service", "tunnel"}, {{"highway", "service"}, {"tunnel", "any_value"}}}, + {{"highway", "steps", "bridge"}, {{"highway", "steps"}, {"bridge", "any_value"}}}, + {{"highway", "steps", "tunnel"}, {{"highway", "steps"}, {"tunnel", "any_value"}}}, + {{"highway", "tertiary", "bridge"}, {{"highway", "tertiary"}, {"bridge", "any_value"}}}, + {{"highway", "tertiary", "tunnel"}, {{"highway", "tertiary"}, {"tunnel", "any_value"}}}, + {{"highway", "tertiary_link", "bridge"}, {{"highway", "tertiary_link"}, {"bridge", "any_value"}}}, + {{"highway", "tertiary_link", "tunnel"}, {{"highway", "tertiary_link"}, {"tunnel", "any_value"}}}, + {{"highway", "track", "area"}, {{"highway", "track"}, {"area", "any_value"}}}, + {{"highway", "track", "bridge"}, {{"highway", "track"}, {"bridge", "any_value"}}}, + {{"highway", "track", "grade1"}, {{"highway", "track"}, {"tracktype", "grade1"}}}, + {{"highway", "track", "grade2"}, {{"highway", "track"}, {"tracktype", "grade2"}}}, + {{"highway", "track", "grade3"}, {{"highway", "track"}, {"tracktype", "grade3"}}}, + {{"highway", "track", "grade4"}, {{"highway", "track"}, {"tracktype", "grade4"}}}, + {{"highway", "track", "grade5"}, {{"highway", "track"}, {"tracktype", "grade5"}}}, + {{"highway", "track", "permissive"}, {{"highway", "track"}, {"access", "permissive"}}}, + {{"highway", "track", "tunnel"}, {{"highway", "track"}, {"tunnel", "any_value"}}}, + {{"highway", "trunk", "bridge"}, {{"highway", "trunk"}, {"bridge", "any_value"}}}, + {{"highway", "trunk", "tunnel"}, {{"highway", "trunk"}, {"tunnel", "any_value"}}}, + {{"highway", "trunk_link", "bridge"}, {{"highway", "trunk_link"}, {"bridge", "any_value"}}}, + {{"highway", "trunk_link", "tunnel"}, {{"highway", "trunk_link"}, {"tunnel", "any_value"}}}, + {{"highway", "unclassified", "area"}, {{"highway", "unclassified"}, {"area", "any_value"}}}, + {{"highway", "unclassified", "bridge"}, {{"highway", "unclassified"}, {"bridge", "any_value"}}}, + {{"highway", "unclassified", "tunnel"}, {{"highway", "unclassified"}, {"tunnel", "any_value"}}}, + {{"historic", "castle", "defensive"}, {{"historic", "castle"}, {"castle_type", "defensive"}}}, + {{"historic", "castle", "stately"}, {{"historic", "castle"}, {"castle_type", "stately"}}}, + {{"historic", "memorial", "plaque"}, {{"historic", "memorial"}, {"memorial", "plaque"}}}, + {{"historic", "memorial", "plaque"}, {{"historic", "memorial"}, {"memorial:type", "plaque"}}}, + {{"historic", "memorial", "sculpture"}, {{"historic", "memorial"}, {"memorial", "sculpture"}}}, + {{"historic", "memorial", "sculpture"}, {{"historic", "memorial"}, {"memorial:type", "sculpture"}}}, + {{"historic", "memorial", "statue"}, {{"historic", "memorial"}, {"memorial", "statue"}}}, + {{"historic", "memorial", "statue"}, {{"historic", "memorial"}, {"memorial:type", "statue"}}}, + {{"internet_access"}, {{"internet_access", "any_value"}}}, + {{"landuse", "cemetery", "christian"}, {{"landuse", "cemetery"}, {"religion", "christian"}}}, + {{"landuse", "forest", "coniferous"}, {{"landuse", "forest"}, {"leaf_type", "coniferous"}}}, + {{"landuse", "forest", "coniferous"}, {{"landuse", "forest"}, {"wood", "coniferous"}}}, + {{"landuse", "forest", "deciduous"}, {{"landuse", "forest"}, {"leaf_cycle", "deciduous"}}}, + {{"landuse", "forest", "deciduous"}, {{"landuse", "forest"}, {"leaf_type", "deciduous"}}}, + {{"landuse", "forest", "deciduous"}, {{"landuse", "forest"}, {"wood", "deciduous"}}}, + {{"landuse", "forest", "mixed"}, {{"landuse", "forest"}, {"leaf_cycle", "mixed"}}}, + {{"landuse", "forest", "mixed"}, {{"landuse", "forest"}, {"leaf_type", "mixed"}}}, + {{"landuse", "forest", "mixed"}, {{"landuse", "forest"}, {"wood", "mixed"}}}, + {{"leisure", "park", "no-access"}, {{"leisure", "park"}, {"access", "no"}}}, + {{"leisure", "park", "private"}, {{"leisure", "park"}, {"access", "private"}}}, + {{"leisure", "park", "private"}, {{"leisure", "park"}, {"access", "private"}}}, + {{"leisure", "sports_centre", "climbing"}, {{"leisure", "sports_centre"}, {"sport", "climbing"}}}, + {{"leisure", "sports_centre", "yoga"}, {{"leisure", "sports_centre"}, {"sport", "yoga"}}}, + {{"natural", "wetland", "bog"}, {{"natural", "wetland"}, {"wetland", "bog"}}}, + {{"natural", "wetland", "marsh"}, {{"natural", "wetland"}, {"wetland", "marsh"}}}, + {{"natural", "wood", "coniferous"}, {{"natural", "wood"}, {"leaf_type", "coniferous"}}}, + {{"natural", "wood", "coniferous"}, {{"natural", "wood"}, {"wood", "coniferous"}}}, + {{"natural", "wood", "deciduous"}, {{"natural", "wood"}, {"leaf_cycle", "deciduous"}}}, + {{"natural", "wood", "deciduous"}, {{"natural", "wood"}, {"leaf_type", "deciduous"}}}, + {{"natural", "wood", "deciduous"}, {{"natural", "wood"}, {"wood", "deciduous"}}}, + {{"natural", "wood", "mixed"}, {{"natural", "wood"}, {"leaf_cycle", "mixed"}}}, + {{"natural", "wood", "mixed"}, {{"natural", "wood"}, {"leaf_type", "mixed"}}}, + {{"natural", "wood", "mixed"}, {{"natural", "wood"}, {"wood", "mixed"}}}, + {{"office"}, {{"office", "any_value"}}}, + {{"piste:type", "downhill", "advanced"}, {{"piste:type", "downhill"}, {"piste:difficulty", "advanced"}}}, + {{"piste:type", "downhill", "easy"}, {{"piste:type", "downhill"}, {"piste:difficulty", "easy"}}}, + {{"piste:type", "downhill", "expert"}, {{"piste:type", "downhill"}, {"piste:difficulty", "expert"}}}, + {{"piste:type", "downhill", "freeride"}, {{"piste:type", "downhill"}, {"piste:difficulty", "freeride"}}}, + {{"piste:type", "downhill", "intermediate"}, {{"piste:type", "downhill"}, {"piste:difficulty", "intermediate"}}}, + {{"piste:type", "downhill", "novice"}, {{"piste:type", "downhill"}, {"piste:difficulty", "novice"}}}, + {{"place", "city", "capital", "10"}, {{"place", "city"}, {"capital", "10"}}}, + {{"place", "city", "capital", "10"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "10"}}}, + {{"place", "city", "capital", "11"}, {{"place", "city"}, {"capital", "11"}}}, + {{"place", "city", "capital", "11"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "11"}}}, + {{"place", "city", "capital", "2"}, {{"place", "city"}, {"capital", "2"}}}, + {{"place", "city", "capital", "2"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "2"}}}, + {{"place", "city", "capital", "3"}, {{"place", "city"}, {"capital", "3"}}}, + {{"place", "city", "capital", "3"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "3"}}}, + {{"place", "city", "capital", "4"}, {{"place", "city"}, {"capital", "4"}}}, + {{"place", "city", "capital", "4"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "4"}}}, + {{"place", "city", "capital", "5"}, {{"place", "city"}, {"capital", "5"}}}, + {{"place", "city", "capital", "5"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "5"}}}, + {{"place", "city", "capital", "6"}, {{"place", "city"}, {"capital", "6"}}}, + {{"place", "city", "capital", "6"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "6"}}}, + {{"place", "city", "capital", "7"}, {{"place", "city"}, {"capital", "7"}}}, + {{"place", "city", "capital", "7"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "7"}}}, + {{"place", "city", "capital", "8"}, {{"place", "city"}, {"capital", "8"}}}, + {{"place", "city", "capital", "8"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "8"}}}, + {{"place", "city", "capital", "9"}, {{"place", "city"}, {"capital", "9"}}}, + {{"place", "city", "capital", "9"}, {{"place", "city"}, {"capital", "any_value"}, {"admin_level", "9"}}}, + {{"place", "city", "capital"}, {{"place", "city"}, {"capital", "any_value"}}}, + {{"place", "state", "USA"}, {{"place", "state"}, {"addr:country", "US"}}}, + {{"place", "state", "USA"}, {{"place", "state"}, {"is_in", "USA"}}}, + {{"place", "state", "USA"}, {{"place", "state"}, {"is_in:country", "USA"}}}, + {{"place", "state", "USA"}, {{"place", "state"}, {"is_in:country_code", "us"}}}, + {{"power", "line", "underground"}, {{"power", "line"}, {"location", "underground"}}}, + {{"railway", "abandoned", "bridge"}, {{"railway", "abandoned"}, {"bridge", "any_value"}}}, + {{"railway", "abandoned", "tunnel"}, {{"railway", "abandoned"}, {"tunnel", "any_value"}}}, + {{"railway", "funicular", "bridge"}, {{"railway", "funicular"}, {"bridge", "any_value"}}}, + {{"railway", "funicular", "tunnel"}, {{"railway", "funicular"}, {"tunnel", "any_value"}}}, + {{"railway", "light_rail", "bridge"}, {{"railway", "light_rail"}, {"bridge", "any_value"}}}, + {{"railway", "light_rail", "tunnel"}, {{"railway", "light_rail"}, {"tunnel", "any_value"}}}, + {{"railway", "monorail", "bridge"}, {{"railway", "monorail"}, {"bridge", "any_value"}}}, + {{"railway", "monorail", "tunnel"}, {{"railway", "monorail"}, {"tunnel", "any_value"}}}, + {{"railway", "narrow_gauge", "bridge"}, {{"railway", "narrow_gauge"}, {"bridge", "any_value"}}}, + {{"railway", "narrow_gauge", "tunnel"}, {{"railway", "narrow_gauge"}, {"tunnel", "any_value"}}}, + {{"railway", "preserved", "bridge"}, {{"railway", "preserved"}, {"bridge", "any_value"}}}, + {{"railway", "preserved", "tunnel"}, {{"railway", "preserved"}, {"tunnel", "any_value"}}}, + {{"railway", "rail", "bridge"}, {{"railway", "rail"}, {"bridge", "any_value"}}}, + {{"railway", "rail", "motor_vehicle"}, {{"railway", "rail"}, {"motor_vehicle", "any_value"}}}, + {{"railway", "rail", "tunnel"}, {{"railway", "rail"}, {"tunnel", "any_value"}}}, + {{"railway", "station", "light_rail"}, {{"railway", "station"}, {"station", "light_rail"}}}, + {{"railway", "station", "light_rail"}, {{"railway", "station"}, {"transport", "light_rail"}}}, + {{"railway", "station", "monorail"}, {{"railway", "station"}, {"station", "monorail"}}}, + {{"railway", "station", "monorail"}, {{"railway", "station"}, {"transport", "monorail"}}}, + {{"railway", "station", "subway", "barcelona"}, {{"railway", "station"}, {"station", "subway"}, {"city", "barcelona"}}}, + {{"railway", "station", "subway", "barcelona"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "barcelona"}}}, + {{"railway", "station", "subway", "berlin"}, {{"railway", "station"}, {"station", "subway"}, {"city", "berlin"}}}, + {{"railway", "station", "subway", "berlin"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "berlin"}}}, + {{"railway", "station", "subway", "blue"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "blue"}}}, + {{"railway", "station", "subway", "blue"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "blue"}}}, + {{"railway", "station", "subway", "brown"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "brown"}}}, + {{"railway", "station", "subway", "brown"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "brown"}}}, + {{"railway", "station", "subway", "darkgreen"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "darkgreen"}}}, + {{"railway", "station", "subway", "darkgreen"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "darkgreen"}}}, + {{"railway", "station", "subway", "gray"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "gray"}}}, + {{"railway", "station", "subway", "gray"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "gray"}}}, + {{"railway", "station", "subway", "green"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "green"}}}, + {{"railway", "station", "subway", "green"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "green"}}}, + {{"railway", "station", "subway", "grey"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "grey"}}}, + {{"railway", "station", "subway", "grey"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "grey"}}}, + {{"railway", "station", "subway", "kiev"}, {{"railway", "station"}, {"station", "subway"}, {"city", "kiev"}}}, + {{"railway", "station", "subway", "kiev"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "kiev"}}}, + {{"railway", "station", "subway", "lightblue"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "lightblue"}}}, + {{"railway", "station", "subway", "lightblue"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "lightblue"}}}, + {{"railway", "station", "subway", "lightgreen"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "lightgreen"}}}, + {{"railway", "station", "subway", "lightgreen"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "lightgreen"}}}, + {{"railway", "station", "subway", "london"}, {{"railway", "station"}, {"station", "subway"}, {"city", "london"}}}, + {{"railway", "station", "subway", "london"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "london"}}}, + {{"railway", "station", "subway", "madrid"}, {{"railway", "station"}, {"station", "subway"}, {"city", "madrid"}}}, + {{"railway", "station", "subway", "madrid"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "madrid"}}}, + {{"railway", "station", "subway", "minsk"}, {{"railway", "station"}, {"station", "subway"}, {"city", "minsk"}}}, + {{"railway", "station", "subway", "minsk"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "minsk"}}}, + {{"railway", "station", "subway", "moscow"}, {{"railway", "station"}, {"station", "subway"}, {"city", "moscow"}}}, + {{"railway", "station", "subway", "moscow"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "moscow"}}}, + {{"railway", "station", "subway", "newyork"}, {{"railway", "station"}, {"station", "subway"}, {"city", "newyork"}}}, + {{"railway", "station", "subway", "newyork"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "newyork"}}}, + {{"railway", "station", "subway", "orange"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "orange"}}}, + {{"railway", "station", "subway", "orange"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "orange"}}}, + {{"railway", "station", "subway", "paris"}, {{"railway", "station"}, {"station", "subway"}, {"city", "paris"}}}, + {{"railway", "station", "subway", "paris"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "paris"}}}, + {{"railway", "station", "subway", "purple"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "purple"}}}, + {{"railway", "station", "subway", "purple"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "purple"}}}, + {{"railway", "station", "subway", "red"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "red"}}}, + {{"railway", "station", "subway", "red"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "red"}}}, + {{"railway", "station", "subway", "roma"}, {{"railway", "station"}, {"station", "subway"}, {"city", "roma"}}}, + {{"railway", "station", "subway", "roma"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "roma"}}}, + {{"railway", "station", "subway", "spb"}, {{"railway", "station"}, {"station", "subway"}, {"city", "spb"}}}, + {{"railway", "station", "subway", "spb"}, {{"railway", "station"}, {"transport", "subway"}, {"city", "spb"}}}, + {{"railway", "station", "subway", "violet"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "violet"}}}, + {{"railway", "station", "subway", "violet"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "violet"}}}, + {{"railway", "station", "subway", "yellow"}, {{"railway", "station"}, {"station", "subway"}, {"colour", "yellow"}}}, + {{"railway", "station", "subway", "yellow"}, {{"railway", "station"}, {"transport", "subway"}, {"colour", "yellow"}}}, + {{"railway", "station", "subway"}, {{"railway", "station"}, {"station", "subway"}}}, + {{"railway", "station", "subway"}, {{"railway", "station"}, {"transport", "subway"}}}, + {{"railway", "subway_entrance", "barcelona"}, {{"railway", "subway_entrance"}, {"city", "barcelona"}}}, + {{"railway", "subway_entrance", "berlin"}, {{"railway", "subway_entrance"}, {"city", "berlin"}}}, + {{"railway", "subway_entrance", "kiev"}, {{"railway", "subway_entrance"}, {"city", "kiev"}}}, + {{"railway", "subway_entrance", "london"}, {{"railway", "subway_entrance"}, {"city", "london"}}}, + {{"railway", "subway_entrance", "madrid"}, {{"railway", "subway_entrance"}, {"city", "madrid"}}}, + {{"railway", "subway_entrance", "minsk"}, {{"railway", "subway_entrance"}, {"city", "minsk"}}}, + {{"railway", "subway_entrance", "moscow"}, {{"railway", "subway_entrance"}, {"city", "moscow"}}}, + {{"railway", "subway_entrance", "newyork"}, {{"railway", "subway_entrance"}, {"city", "newyork"}}}, + {{"railway", "subway_entrance", "paris"}, {{"railway", "subway_entrance"}, {"city", "paris"}}}, + {{"railway", "subway_entrance", "roma"}, {{"railway", "subway_entrance"}, {"city", "roma"}}}, + {{"railway", "subway_entrance", "spb"}, {{"railway", "subway_entrance"}, {"city", "spb"}}}, + {{"railway", "tram", "bridge"}, {{"railway", "tram"}, {"bridge", "any_value"}}}, + {{"railway", "tram", "tunnel"}, {{"railway", "tram"}, {"tunnel", "any_value"}}}, + {{"railway", "yard", "bridge"}, {{"railway", "yard"}, {"bridge", "any_value"}}}, + {{"railway", "yard", "tunnel"}, {{"railway", "yard"}, {"tunnel", "any_value"}}}, + {{"route", "ferry", "motor_vehicle"}, {{"route", "ferry"}, {"motor_vehicle", "any_value"}}}, + {{"route", "ferry", "motorcar"}, {{"route", "ferry"}, {"motorcar", "any_value"}}}, + {{"shop", "car_repair", "tyres"}, {{"shop", "car_repair"}, {"service", "tyres"}}}, + {{"shop", "clothes"}, {{"shop", "clothes"}}}, + {{"shop", "clothes"}, {{"shop", "fashion"}}}, + {{"shop"}, {{"shop", "any_value"}}}, + {{"sponsored"}, {{"sponsored", "any_value"}}}, + {{"sport", "golf"}, {{"sport", "golf"}}}, + {{"sport", "golf"}, {{"sport", "miniature_golf"}}}, + {{"tourism", "artwork", "architecture"}, {{"tourism", "artwork"}, {"artwork_type", "architecture"}}}, + {{"tourism", "artwork", "architecture"}, {{"tourism", "artwork"}, {"type", "architecture"}}}, + {{"tourism", "artwork", "painting"}, {{"tourism", "artwork"}, {"artwork_type", "painting"}}}, + {{"tourism", "artwork", "painting"}, {{"tourism", "artwork"}, {"type", "painting"}}}, + {{"tourism", "artwork", "sculpture"}, {{"tourism", "artwork"}, {"artwork_type", "sculpture"}}}, + {{"tourism", "artwork", "sculpture"}, {{"tourism", "artwork"}, {"type", "sculpture"}}}, + {{"tourism", "artwork", "statue"}, {{"tourism", "artwork"}, {"artwork_type", "statue"}}}, + {{"tourism", "artwork", "statue"}, {{"tourism", "artwork"}, {"type", "statue"}}}, + {{"tourism", "attraction", "animal"}, {{"tourism", "attraction"}, {"attraction", "animal"}}}, + {{"tourism", "attraction", "specified"}, {{"tourism", "attraction"}, {"attraction", "specified"}}}, + {{"tourism", "information", "board"}, {{"tourism", "information"}, {"information", "board"}}}, + {{"tourism", "information", "guidepost"}, {{"tourism", "information"}, {"information", "guidepost"}}}, + {{"tourism", "information", "map"}, {{"tourism", "information"}, {"information", "map"}}}, + {{"tourism", "information", "office"}, {{"tourism", "information"}, {"information", "office"}}}, + {{"waterway", "canal", "tunnel"}, {{"waterway", "canal"}, {"tunnel", "any_value"}}}, + {{"waterway", "river", "tunnel"}, {{"waterway", "river"}, {"tunnel", "any_value"}}}, + {{"waterway", "stream", "ephemeral"}, {{"waterway", "stream"}, {"intermittent", "ephemeral"}}}, + {{"waterway", "stream", "intermittent"}, {{"waterway", "stream"}, {"intermittent", "yes"}}}, + }; + + for (auto const & type : complexTypes) + { + auto const params = GetFeatureBuilderParams(type.second); + TEST_EQUAL(params.m_types.size(), 1, (type, params)); + TEST(params.IsTypeExist(GetType(type.first)), (type, params)); + } +}