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))) }