aboutsummaryrefslogtreecommitdiff
path: root/mountain_pass/extract_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'mountain_pass/extract_test.go')
-rw-r--r--mountain_pass/extract_test.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/mountain_pass/extract_test.go b/mountain_pass/extract_test.go
index 7eae33b..952ba08 100644
--- a/mountain_pass/extract_test.go
+++ b/mountain_pass/extract_test.go
@@ -68,3 +68,46 @@ func TestCountingReaderTracksBytes(t *testing.T) {
}
assert.Equal(t, int64(len(content)), reader.n)
}
+
+func TestCategorizePass(t *testing.T) {
+ cases := []struct {
+ name string
+ tags map[string]string
+ highways []string
+ wantCategory string
+ }{
+ {"road secondary", map[string]string{"natural": "saddle"}, []string{"secondary"}, CategoryRoad},
+ {"road wins over path", map[string]string{"natural": "saddle"}, []string{"path", "secondary", "track"}, CategoryRoad},
+ {"track", map[string]string{"natural": "saddle"}, []string{"track"}, CategoryTrack},
+ {"path", map[string]string{"natural": "saddle"}, []string{"path"}, CategoryPath},
+ {"hiking rock path", map[string]string{"natural": "rock", "sport": "climbing"}, []string{"path"}, CategoryHiking},
+ {"hiking rock no way", map[string]string{"natural": "rock"}, nil, CategoryHiking},
+ {"unknown no way", map[string]string{"natural": "saddle"}, nil, CategoryUnknown},
+ {"via_ferrata is path", map[string]string{"natural": "saddle"}, []string{"via_ferrata"}, CategoryPath},
+ {"unknown other highway", map[string]string{"natural": "saddle"}, []string{"construction"}, CategoryUnknown},
+ {"hiking rock but road present is road", map[string]string{"natural": "rock", "sport": "climbing"}, []string{"secondary"}, CategoryRoad},
+ }
+ for _, c := range cases {
+ tags := osm.Tags{}
+ for k, v := range c.tags {
+ tags = append(tags, osm.Tag{Key: k, Value: v})
+ }
+ cat := categorizePass(tags, c.highways)
+ assert.Equal(t, c.wantCategory, cat, c.name)
+ }
+}
+
+func TestIsRoadHighway(t *testing.T) {
+ assert.True(t, isRoadHighway("secondary"))
+ assert.True(t, isRoadHighway("primary"))
+ assert.True(t, isRoadHighway("tertiary"))
+ assert.True(t, isRoadHighway("residential"))
+ assert.False(t, isRoadHighway("track"))
+ assert.False(t, isRoadHighway("path"))
+}
+
+func TestIsPathHighway(t *testing.T) {
+ assert.True(t, isPathHighway("path"))
+ assert.True(t, isPathHighway("footway"))
+ assert.False(t, isPathHighway("secondary"))
+}