9
type HullSuite struct{}
11
var _ = gc.Suite(&HullSuite{})
13
func (s *HullSuite) TestGetPointOutside(c *gc.C) {
14
var tests = []struct {
16
vertices []image.Point
20
about: "zero vertices",
21
vertices: []image.Point{},
22
expected: image.Point{0, 0},
26
vertices: []image.Point{{0, 0}},
27
expected: image.Point{10, 10},
30
about: "two vertices",
31
vertices: []image.Point{{0, 0}, {10, 10}},
32
expected: image.Point{20, 20},
35
about: "three vertices (convexHull fall through)",
36
vertices: []image.Point{{0, 0}, {0, 10}, {10, 0}},
37
expected: image.Point{10, 20},
40
about: "four vertices",
41
vertices: []image.Point{{0, 0}, {0, 10}, {10, 0}, {10, 10}},
42
expected: image.Point{20, 20},
45
for _, test := range tests {
47
c.Assert(getPointOutside(test.vertices, image.Point{10, 10}), gc.Equals, test.expected)
51
func (s *HullSuite) TestConvexHull(c *gc.C) {
53
vertices := []image.Point{}
54
c.Assert(convexHull(vertices), gc.DeepEquals, []image.Point{{0, 0}})
57
vertices = []image.Point{{1, 1}}
58
c.Assert(convexHull(vertices), gc.DeepEquals, vertices)
60
vertices = []image.Point{{1, 1}, {2, 2}}
61
c.Assert(convexHull(vertices), gc.DeepEquals, vertices)
63
vertices = []image.Point{{1, 1}, {2, 2}, {1, 2}}
64
c.Assert(convexHull(vertices), gc.DeepEquals, vertices)
67
vertices = []image.Point{}
68
for i := 0; i < 100; i++ {
69
vertices = append(vertices, image.Point{i / 10, i % 10})
71
c.Assert(convexHull(vertices), gc.DeepEquals, []image.Point{