37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
package play
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"opslag.de/schobers/geom"
|
|
)
|
|
|
|
func createIsometricProjection() *IsometricProjection {
|
|
return NewIsometricProjection(geom.PtF32(23, 11), geom.RectRelF32(0, 0, 160, 160))
|
|
}
|
|
|
|
func TestViewToTile(t *testing.T) {
|
|
p := createIsometricProjection()
|
|
assert.Equal(t, geom.PtF32(0, 0), p.ViewToTile(geom.PtF32(80, 80)))
|
|
assert.Equal(t, geom.PtF32(-1, 1), p.ViewToTile(geom.PtF32(57, 80)))
|
|
assert.Equal(t, geom.PtF32(2, 2), p.ViewToTile(geom.PtF32(80, 102)))
|
|
assert.Equal(t, geom.PtF32(-1, -3), p.ViewToTile(geom.PtF32(103, 58)))
|
|
}
|
|
|
|
func TestViewToTileInt(t *testing.T) {
|
|
p := createIsometricProjection()
|
|
assert.Equal(t, geom.Pt(0, 0), p.ViewToTileInt(geom.PtF32(80, 80)))
|
|
assert.Equal(t, geom.Pt(0, 0), p.ViewToTileInt(geom.PtF32(69, 80)))
|
|
assert.Equal(t, geom.Pt(-1, 1), p.ViewToTileInt(geom.PtF32(68, 80)))
|
|
}
|
|
|
|
func TestTileToView(t *testing.T) {
|
|
p := createIsometricProjection()
|
|
assert.Equal(t, geom.PtF32(80, 80), p.TileToView(geom.PtF32(0, 0)))
|
|
assert.Equal(t, geom.PtF32(57, 80), p.TileToView(geom.PtF32(-1, 1)))
|
|
assert.Equal(t, geom.PtF32(80, 102), p.TileToView(geom.PtF32(2, 2)))
|
|
assert.Equal(t, geom.PtF32(103, 58), p.TileToView(geom.PtF32(-1, -3)))
|
|
}
|