add first test for mergeRing
parent
5c99317010
commit
3d1c847a6d
|
@ -85,7 +85,7 @@ func mergeRings(rings []*Ring) []*Ring {
|
||||||
for _, ring := range endpoints {
|
for _, ring := range endpoints {
|
||||||
uniqueRings[ring] = true
|
uniqueRings[ring] = true
|
||||||
}
|
}
|
||||||
result := make([]*Ring, len(uniqueRings))
|
result := make([]*Ring, 0, len(uniqueRings))
|
||||||
for ring, _ := range uniqueRings {
|
for ring, _ := range uniqueRings {
|
||||||
result = append(result, ring)
|
result = append(result, ring)
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
package geom
|
||||||
|
|
||||||
|
import (
|
||||||
|
"goposm/element"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestRingMerge(t *testing.T) {
|
||||||
|
w1 := element.Way{}
|
||||||
|
w1.Id = 1
|
||||||
|
w1.Refs = []int64{1, 2, 3}
|
||||||
|
nodes := []*element.Node{
|
||||||
|
&element.Node{},
|
||||||
|
&element.Node{},
|
||||||
|
&element.Node{},
|
||||||
|
}
|
||||||
|
r1 := Ring{[]*element.Way{&w1}, w1.Refs, nodes}
|
||||||
|
|
||||||
|
w2 := element.Way{}
|
||||||
|
w2.Id = 2
|
||||||
|
w2.Refs = []int64{3, 4, 1}
|
||||||
|
nodes = []*element.Node{
|
||||||
|
&element.Node{},
|
||||||
|
&element.Node{},
|
||||||
|
&element.Node{},
|
||||||
|
}
|
||||||
|
r2 := Ring{[]*element.Way{&w2}, w2.Refs, nodes}
|
||||||
|
rings := []*Ring{&r1, &r2}
|
||||||
|
|
||||||
|
result := mergeRings(rings)
|
||||||
|
if len(result) != 1 {
|
||||||
|
t.Fatal(result)
|
||||||
|
}
|
||||||
|
r := result[0]
|
||||||
|
expected := []int64{1, 2, 3, 4, 1}
|
||||||
|
for i, ref := range r.refs {
|
||||||
|
if ref != expected[i] {
|
||||||
|
t.Fatalf("%v != %v", r.refs, expected)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue