From 5525702909f8042d4d81a5254da4e8c9a63c3cb9 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Tue, 29 Oct 2013 10:46:41 -0700 Subject: [PATCH] Lower match score of generic presets (fixes #1933) --- data/presets/presets.json | 12 ++++++++---- data/presets/presets/area.json | 3 ++- data/presets/presets/line.json | 3 ++- data/presets/presets/point.json | 3 ++- data/presets/presets/vertex.json | 3 ++- test/spec/presets.js | 26 ++++++++++++++++++++++++++ 6 files changed, 42 insertions(+), 8 deletions(-) diff --git a/data/presets/presets.json b/data/presets/presets.json index f5a1cc921..72341084b 100644 --- a/data/presets/presets.json +++ b/data/presets/presets.json @@ -1255,7 +1255,8 @@ }, "geometry": [ "area" - ] + ], + "matchScore": 0.1 }, "barrier": { "geometry": [ @@ -2918,7 +2919,8 @@ "tags": {}, "geometry": [ "line" - ] + ], + "matchScore": 0.1 }, "man_made": { "fields": [ @@ -3472,7 +3474,8 @@ "tags": {}, "geometry": [ "point" - ] + ], + "matchScore": 0.1 }, "power": { "geometry": [ @@ -5290,7 +5293,8 @@ "tags": {}, "geometry": [ "vertex" - ] + ], + "matchScore": 0.1 }, "waterway": { "fields": [ diff --git a/data/presets/presets/area.json b/data/presets/presets/area.json index b6df31e02..f1bbfe52a 100644 --- a/data/presets/presets/area.json +++ b/data/presets/presets/area.json @@ -3,5 +3,6 @@ "tags": { "area": "yes" }, - "geometry": ["area"] + "geometry": ["area"], + "matchScore": 0.1 } \ No newline at end of file diff --git a/data/presets/presets/line.json b/data/presets/presets/line.json index 0086b8fbe..c8995abed 100644 --- a/data/presets/presets/line.json +++ b/data/presets/presets/line.json @@ -1,5 +1,6 @@ { "name": "Line", "tags": {}, - "geometry": ["line"] + "geometry": ["line"], + "matchScore": 0.1 } \ No newline at end of file diff --git a/data/presets/presets/point.json b/data/presets/presets/point.json index 920136cbf..b4946599a 100644 --- a/data/presets/presets/point.json +++ b/data/presets/presets/point.json @@ -1,5 +1,6 @@ { "name": "Point", "tags": {}, - "geometry": ["point"] + "geometry": ["point"], + "matchScore": 0.1 } \ No newline at end of file diff --git a/data/presets/presets/vertex.json b/data/presets/presets/vertex.json index b1d9d87d4..6d2ea13fd 100644 --- a/data/presets/presets/vertex.json +++ b/data/presets/presets/vertex.json @@ -1,5 +1,6 @@ { "name": "Other", "tags": {}, - "geometry": ["vertex"] + "geometry": ["vertex"], + "matchScore": 0.1 } \ No newline at end of file diff --git a/test/spec/presets.js b/test/spec/presets.js index ea9028a09..c72982d42 100644 --- a/test/spec/presets.js +++ b/test/spec/presets.js @@ -39,4 +39,30 @@ describe("iD.presets", function() { expect(c.match(line, graph).id).to.eql('line'); }); }); + + describe("expected matches", function() { + var presets; + + before(function() { + presets = iD.presets().load(iD.data.presets); + }); + + it("prefers building to multipolygon", function() { + var relation = iD.Relation({tags: {type: 'multipolygon', building: 'yes'}}), + graph = iD.Graph([relation]); + expect(presets.match(relation, graph).id).to.eql('building'); + }); + + it("prefers building to address", function() { + var way = iD.Way({tags: {area: 'yes', building: 'yes', 'addr:housenumber': '1234'}}), + graph = iD.Graph([way]); + expect(presets.match(way, graph).id).to.eql('building'); + }); + + it("prefers pedestrian to area", function() { + var way = iD.Way({tags: {area: 'yes', highway: 'pedestrian'}}), + graph = iD.Graph([way]); + expect(presets.match(way, graph).id).to.eql('highway/pedestrian'); + }); + }); });