From 8a3585dbba68fb18542be969692bf90a0d552bf3 Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Mon, 9 Sep 2013 12:31:07 +0200 Subject: [PATCH] ignore name tag when checking if way of multipolygon was inserted --- geom/ring.go | 6 ++++++ geom/ring_test.go | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/geom/ring.go b/geom/ring.go index 99d8aa8..4c5c106 100644 --- a/geom/ring.go +++ b/geom/ring.go @@ -36,11 +36,17 @@ func tagsSameOrEmpty(a, b element.Tags) bool { return true } for k, v := range a { + if k == "name" { + continue + } if cmp, ok := b[k]; !ok || v != cmp { return false } } for k, v := range b { + if k == "name" { + continue + } if cmp, ok := a[k]; !ok || v != cmp { return false } diff --git a/geom/ring_test.go b/geom/ring_test.go index 60c0739..43f868e 100644 --- a/geom/ring_test.go +++ b/geom/ring_test.go @@ -182,3 +182,42 @@ func TestRingMergePermutations(t *testing.T) { } } } + +func TestTagsSameOrEmpty(t *testing.T) { + var a, b element.Tags + + a = element.Tags{"natural": "water"} + b = element.Tags{"natural": "water"} + if tagsSameOrEmpty(a, b) != true { + t.Fatal(a, b) + } + + a = element.Tags{"natural": "water"} + b = element.Tags{"natural": "water", "name": "bar"} + if tagsSameOrEmpty(a, b) != true { + t.Fatal(a, b) + } + if tagsSameOrEmpty(b, a) != true { + t.Fatal(a, b) + } + + a = element.Tags{"natural": "water"} + b = element.Tags{} + if tagsSameOrEmpty(a, b) != true { + t.Fatal(a, b) + } + + if tagsSameOrEmpty(b, a) != false { + t.Fatal(a, b) + } + + a = element.Tags{"natural": "water"} + b = element.Tags{"landusage": "forest", "natural": "water"} + if tagsSameOrEmpty(a, b) != false { + t.Fatal(a, b) + } + if tagsSameOrEmpty(b, a) != false { + t.Fatal(a, b) + } + +}