func TestExpanded(t *testing.T) { empty := Rect{FullRect().Lat, s1.EmptyInterval()} tests := []struct { input Rect margin LatLng want Rect }{ { rectFromDegrees(70, 150, 80, 170), LatLngFromDegrees(20, 30), rectFromDegrees(50, 120, 90, -160), }, { empty, LatLngFromDegrees(20, 30), empty, }, { FullRect(), LatLngFromDegrees(20, 30), FullRect(), }, { rectFromDegrees(-90, 170, 10, 20), LatLngFromDegrees(30, 80), rectFromDegrees(-90, -180, 40, 180), }, } for _, test := range tests { if got, want := test.input.expanded(test.margin), test.want; !rectApproxEqual(got, want) { t.Errorf("%v.Expanded(%v) was %v, want %v", test.input, test.margin, got, want) } } }
func TestAddPoint(t *testing.T) { tests := []struct { input Rect point LatLng want Rect }{ { Rect{r1.EmptyInterval(), s1.EmptyInterval()}, LatLngFromDegrees(0, 0), rectFromDegrees(0, 0, 0, 0), }, { rectFromDegrees(0, 0, 0, 0), LatLng{0 * s1.Radian, (-math.Pi / 2) * s1.Radian}, rectFromDegrees(0, -90, 0, 0), }, { rectFromDegrees(0, -90, 0, 0), LatLng{(math.Pi / 4) * s1.Radian, (-math.Pi) * s1.Radian}, rectFromDegrees(0, -180, 45, 0), }, { rectFromDegrees(0, -180, 45, 0), LatLng{(math.Pi / 2) * s1.Radian, 0 * s1.Radian}, rectFromDegrees(0, -180, 90, 0), }, } for _, test := range tests { if got, want := test.input.AddPoint(test.point), test.want; !rectApproxEqual(got, want) { t.Errorf("%v.AddPoint(%v) was %v, want %v", test.input, test.point, got, want) } } }