forked from go-spatial/tegola
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstruct_polygon_test.go
76 lines (73 loc) · 3 KB
/
construct_polygon_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package makevalid
import (
"log"
"testing"
"github.com/gdey/tbltest"
"github.com/go-spatial/tegola/maths"
)
func _TestConstuctPolygon(t *testing.T) {
type testcase struct {
lines []maths.Line
}
tests := tbltest.Cases(
testcase{
lines: []maths.Line{
{maths.Pt{X: 25, Y: 19}, maths.Pt{X: 29, Y: 14}},
{maths.Pt{X: 25, Y: 19}, maths.Pt{X: 29, Y: 23}},
{maths.Pt{X: 29, Y: 14}, maths.Pt{X: 32, Y: 14}},
{maths.Pt{X: 29, Y: 23}, maths.Pt{X: 32, Y: 25}},
{maths.Pt{X: 32, Y: 14}, maths.Pt{X: 36, Y: 17}},
{maths.Pt{X: 36, Y: 17}, maths.Pt{X: 36, Y: 20}},
{maths.Pt{X: 32, Y: 25}, maths.Pt{X: 36, Y: 29}},
{maths.Pt{X: 36, Y: 20}, maths.Pt{X: 44, Y: 30}},
{maths.Pt{X: 36, Y: 29}, maths.Pt{X: 44, Y: 37}},
{maths.Pt{X: 44, Y: 30}, maths.Pt{X: 47, Y: 32}},
{maths.Pt{X: 44, Y: 37}, maths.Pt{X: 47, Y: 39}},
{maths.Pt{X: 47, Y: 32}, maths.Pt{X: 48, Y: 33}},
{maths.Pt{X: 47, Y: 39}, maths.Pt{X: 48, Y: 40}},
{maths.Pt{X: 48, Y: 33}, maths.Pt{X: 50, Y: 34}},
{maths.Pt{X: 48, Y: 40}, maths.Pt{X: 50, Y: 42}},
{maths.Pt{X: 50, Y: 34}, maths.Pt{X: 51, Y: 34}},
{maths.Pt{X: 50, Y: 42}, maths.Pt{X: 51, Y: 43}},
{maths.Pt{X: 51, Y: 34}, maths.Pt{X: 52, Y: 35}},
{maths.Pt{X: 51, Y: 43}, maths.Pt{X: 52, Y: 44}},
{maths.Pt{X: 52, Y: 35}, maths.Pt{X: 53, Y: 36}},
{maths.Pt{X: 51, Y: 60}, maths.Pt{X: 52, Y: 60}},
{maths.Pt{X: 52, Y: 60}, maths.Pt{X: 53, Y: 61}},
{maths.Pt{X: 53, Y: 36}, maths.Pt{X: 58, Y: 39}},
{maths.Pt{X: 50, Y: 60}, maths.Pt{X: 51, Y: 59}},
{maths.Pt{X: 50, Y: 60}, maths.Pt{X: 51, Y: 60}},
{maths.Pt{X: 51, Y: 46}, maths.Pt{X: 52, Y: 44}},
{maths.Pt{X: 53, Y: 61}, maths.Pt{X: 58, Y: 54}},
{maths.Pt{X: 50, Y: 58}, maths.Pt{X: 51, Y: 59}},
{maths.Pt{X: 58, Y: 39}, maths.Pt{X: 66, Y: 25}},
{maths.Pt{X: 50, Y: 48}, maths.Pt{X: 51, Y: 46}},
{maths.Pt{X: 58, Y: 54}, maths.Pt{X: 66, Y: 42}},
{maths.Pt{X: 48, Y: 56}, maths.Pt{X: 50, Y: 58}},
{maths.Pt{X: 66, Y: 25}, maths.Pt{X: 71, Y: 18}},
{maths.Pt{X: 48, Y: 53}, maths.Pt{X: 50, Y: 48}},
{maths.Pt{X: 66, Y: 42}, maths.Pt{X: 71, Y: 35}},
{maths.Pt{X: 47, Y: 55}, maths.Pt{X: 48, Y: 53}},
{maths.Pt{X: 47, Y: 55}, maths.Pt{X: 48, Y: 56}},
{maths.Pt{X: 71, Y: 18}, maths.Pt{X: 74, Y: 14}},
{maths.Pt{X: 71, Y: 35}, maths.Pt{X: 74, Y: 31}},
{maths.Pt{X: 74, Y: 14}, maths.Pt{X: 75, Y: 13}},
{maths.Pt{X: 74, Y: 31}, maths.Pt{X: 75, Y: 29}},
{maths.Pt{X: 75, Y: 29}, maths.Pt{X: 77, Y: 26}},
{maths.Pt{X: 75, Y: 1}, maths.Pt{X: 77, Y: 0}},
{maths.Pt{X: 77, Y: 26}, maths.Pt{X: 84, Y: 16}},
{maths.Pt{X: 77, Y: 0}, maths.Pt{X: 84, Y: 16}},
{maths.Pt{X: 74, Y: 10}, maths.Pt{X: 75, Y: 13}},
{maths.Pt{X: 74, Y: 1}, maths.Pt{X: 75, Y: 1}},
{maths.Pt{X: 71, Y: 8}, maths.Pt{X: 74, Y: 1}},
{maths.Pt{X: 71, Y: 8}, maths.Pt{X: 74, Y: 10}},
},
},
)
tests.Run(func(idx int, test testcase) {
got := constructPolygon(test.lines)
for i := range got {
log.Printf("Ring(%v):%v", i, got[i])
}
})
}