mirror of
https://github.com/SamyRai/turash.git
synced 2025-12-26 23:01:33 +00:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package geospatial
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"gorm.io/driver/sqlite"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func TestPointExprAndArgs(t *testing.T) {
|
|
db, _ := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
g := NewGeoHelper(db)
|
|
|
|
expr := g.PointExpr()
|
|
require.Contains(t, expr, "ST_SetSRID")
|
|
args := g.PointArgs(1.23, 4.56)
|
|
require.Equal(t, 2, len(args))
|
|
require.Equal(t, 1.23, args[0].(float64))
|
|
require.Equal(t, 4.56, args[1].(float64))
|
|
}
|
|
|
|
func TestDWithinAndOrderExpr(t *testing.T) {
|
|
db, _ := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
g := NewGeoHelper(db)
|
|
|
|
dwithin := g.DWithinExpr("geometry_col")
|
|
require.Contains(t, dwithin, "ST_DWithin")
|
|
require.Contains(t, dwithin, "geometry_col::geography")
|
|
|
|
order := g.OrderByDistanceExpr("geometry_col")
|
|
require.Contains(t, order, "<->")
|
|
require.Contains(t, order, "geometry_col")
|
|
}
|
|
|
|
func TestPointRadiusArgs(t *testing.T) {
|
|
db, _ := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
|
g := NewGeoHelper(db)
|
|
|
|
args := g.PointRadiusArgs(1.0, 2.0, 3.0, false)
|
|
require.Equal(t, 3, len(args))
|
|
|
|
args2 := g.PointRadiusArgs(1.0, 2.0, 3.0, true)
|
|
require.Equal(t, 5, len(args2))
|
|
}
|