From bc71a8c16524d61ef6ddaad9412c7158b45064b1 Mon Sep 17 00:00:00 2001 From: Christopher Tessum Date: Sun, 22 Jul 2018 22:17:54 +0000 Subject: [PATCH] Add multipolygon test --- multipolygon_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 multipolygon_test.go diff --git a/multipolygon_test.go b/multipolygon_test.go new file mode 100644 index 0000000..cc6714b --- /dev/null +++ b/multipolygon_test.go @@ -0,0 +1,36 @@ +package geom + +import ( + "reflect" + "testing" +) + +func TestMultipolygon_Difference(t *testing.T) { + mp1 := MultiPolygon{Polygon{ + Path{ + Point{X: 99, Y: 164}, Point{X: 99, Y: 108}, Point{X: 114, Y: 108}, Point{X: 114, Y: 0}, + Point{X: 121, Y: 0}, Point{X: 121, Y: 164}, Point{X: 99, Y: 164}, + }, + Path{ + Point{X: 0, Y: 499}, Point{X: 0, Y: 488}, + Point{X: 88, Y: 488}, Point{X: 88, Y: 465}, Point{X: 97, Y: 465}, + Point{X: 97, Y: 326}, Point{X: 79, Y: 326}, Point{X: 79, Y: 258}, + Point{X: 121, Y: 258}, Point{X: 121, Y: 499}, Point{X: 0, Y: 499}, + }, + }} + + mp2 := MultiPolygon{Polygon{Path{ + Point{X: 114, Y: 0}, Point{X: 161, Y: 0}, Point{X: 161, Y: 168}, + Point{X: 114, Y: 168}, Point{X: 114, Y: 0}, + }}} + + difference := mp2.Difference(mp1) + want := Polygon{Path{ + Point{X: 114, Y: 168}, Point{X: 114, Y: 164}, Point{X: 121, Y: 164}, + Point{X: 121, Y: 0}, Point{X: 161, Y: 0}, Point{X: 161, Y: 168}, + Point{X: 114, Y: 168}, + }} + if !reflect.DeepEqual(want, difference) { + t.Errorf("want %+v, have %+v", want, difference) + } +}