29 lines
861 B
Go
29 lines
861 B
Go
package level_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/inkyblackness/hacked/ss1/content/archive/level"
|
|
)
|
|
|
|
func TestFinePositionSlopeFactorFor(t *testing.T) {
|
|
tt := []struct {
|
|
pos level.FinePosition
|
|
tileType level.TileType
|
|
expected float32
|
|
}{
|
|
{level.FinePosition{X: 127, Y: 127}, level.TileTypeOpen, 0.0},
|
|
{level.FinePosition{X: 127, Y: 127}, level.TileTypeSlopeNorthToSouth, 0.5},
|
|
{level.FinePosition{X: 127, Y: 127}, level.TileTypeRidgeNorthWestToSouthEast, 0.5},
|
|
{level.FinePosition{X: 0, Y: 127}, level.TileTypeRidgeNorthWestToSouthEast, 0.0},
|
|
{level.FinePosition{X: 127, Y: 0}, level.TileTypeRidgeNorthWestToSouthEast, 0.5},
|
|
}
|
|
|
|
for _, tc := range tt {
|
|
result := tc.pos.SlopeFactorFor(tc.tileType)
|
|
assert.InDeltaf(t, tc.expected, result, 0.01, "Type: %v, Pos: %v", tc.tileType, tc.pos)
|
|
}
|
|
}
|