mirror of https://github.com/tidwall/tile38.git
45 lines
938 B
Go
45 lines
938 B
Go
package geojson
|
|
|
|
import "testing"
|
|
|
|
func TestCirclePolygon(t *testing.T) {
|
|
circle := CirclePolygon(-115, 33, 10000, 20)
|
|
point := Point{Coordinates: Position{-115, 33, 0}}
|
|
if !point.Intersects(circle) {
|
|
t.Fatal("should intersect")
|
|
}
|
|
circle2 := CirclePolygon(-115, 33, 20000, 20)
|
|
if !circle2.Intersects(circle) {
|
|
t.Fatal("should intersect")
|
|
}
|
|
if !circle.Intersects(circle2) {
|
|
t.Fatal("should intersect")
|
|
}
|
|
rect := Polygon{
|
|
Coordinates: [][]Position{
|
|
[]Position{
|
|
{X: -120, Y: 20, Z: 0},
|
|
{X: -120, Y: 40, Z: 0},
|
|
{X: -100, Y: 40, Z: 0},
|
|
{X: -100, Y: 40, Z: 0},
|
|
{X: -120, Y: 20, Z: 0},
|
|
},
|
|
},
|
|
}
|
|
if !circle.Intersects(rect) {
|
|
t.Fatal("should intersect")
|
|
}
|
|
if !rect.Intersects(circle) {
|
|
t.Fatal("should intersect")
|
|
}
|
|
line := LineString{
|
|
Coordinates: []Position{
|
|
{X: -116, Y: 23, Z: 0},
|
|
{X: -114, Y: 43, Z: 0},
|
|
},
|
|
}
|
|
if !line.Intersects(circle) {
|
|
t.Fatal("should intersect")
|
|
}
|
|
}
|