* Adding two new variations with hazards along the edges * Implementing code review feedback
44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package maps_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/BattlesnakeOfficial/rules"
|
|
"github.com/BattlesnakeOfficial/rules/maps"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRiversAndBridgetsHazardsMap(t *testing.T) {
|
|
// check error handling
|
|
m := maps.RiverAndBridgesMediumHazardsMap{}
|
|
settings := rules.Settings{}
|
|
|
|
// check error for unsupported board sizes
|
|
state := rules.NewBoardState(9, 9)
|
|
editor := maps.NewBoardStateEditor(state)
|
|
err := m.SetupBoard(state, settings, editor)
|
|
require.Error(t, err)
|
|
|
|
tests := []struct {
|
|
Map maps.GameMap
|
|
Width uint
|
|
Height uint
|
|
}{
|
|
{maps.RiverAndBridgesMediumHazardsMap{}, 11, 11},
|
|
{maps.RiverAndBridgesLargeHazardsMap{}, 19, 19},
|
|
{maps.RiverAndBridgesExtraLargeHazardsMap{}, 25, 25},
|
|
{maps.IslandsAndBridgesMediumHazardsMap{}, 11, 11},
|
|
{maps.IslandsAndBridgesLargeHazardsMap{}, 19, 19},
|
|
}
|
|
|
|
// check all the supported sizes
|
|
for _, test := range tests {
|
|
state = rules.NewBoardState(int(test.Width), int(test.Height))
|
|
state.Snakes = append(state.Snakes, rules.Snake{ID: "1", Body: []rules.Point{}})
|
|
editor = maps.NewBoardStateEditor(state)
|
|
require.Empty(t, state.Hazards)
|
|
err = test.Map.SetupBoard(state, settings, editor)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, state.Hazards)
|
|
}
|
|
}
|