DEV-1761: New rules API (#118)
* DEV-1761: Clean up Ruleset interface (#115) * remove legacy ruleset types and simplify ruleset interface * remove unnecessary settings argument from Ruleset interface * decouple rules.Settings from client API and store settings as strings * DEV 1761: Add new BoardState and Point fields (#117) * add Point.TTL, Point.Value, GameState and PointState to BoardState * allow maps to access BoardState.GameState,PointState * add PreUpdateBoard and refactor snail_mode with it * fix bug where an extra turn was printed to the console * fix formatting * fix lint errors Co-authored-by: JonathanArns <jonathan.arns@googlemail.com>
This commit is contained in:
parent
639362ef46
commit
82e1999126
50 changed files with 1349 additions and 1610 deletions
|
|
@ -10,31 +10,6 @@ import (
|
|||
_ "github.com/BattlesnakeOfficial/rules/test"
|
||||
)
|
||||
|
||||
func TestParamInt(t *testing.T) {
|
||||
require.Equal(t, 5, paramsInt(nil, "test", 5), "nil map")
|
||||
require.Equal(t, 10, paramsInt(map[string]string{}, "foo", 10), "empty map")
|
||||
require.Equal(t, 10, paramsInt(map[string]string{"hullo": "there"}, "hullo", 10), "invalid value")
|
||||
require.Equal(t, 20, paramsInt(map[string]string{"bonjour": "20"}, "bonjour", 20), "valid value")
|
||||
}
|
||||
|
||||
func TestParamBool(t *testing.T) {
|
||||
// missing values default to specified value
|
||||
require.Equal(t, true, paramsBool(nil, "test", true), "nil map true")
|
||||
require.Equal(t, false, paramsBool(nil, "test", false), "nil map false")
|
||||
|
||||
// missing values default to specified value
|
||||
require.Equal(t, true, paramsBool(map[string]string{}, "foo", true), "empty map true")
|
||||
require.Equal(t, false, paramsBool(map[string]string{}, "foo", false), "empty map false")
|
||||
|
||||
// invalid values (exist but not booL) default to false
|
||||
require.Equal(t, false, paramsBool(map[string]string{"hullo": "there"}, "hullo", true), "invalid value default true")
|
||||
require.Equal(t, false, paramsBool(map[string]string{"hullo": "there"}, "hullo", false), "invalid value default false")
|
||||
|
||||
// valid values ignore defaults
|
||||
require.Equal(t, false, paramsBool(map[string]string{"bonjour": "false"}, "bonjour", false), "valid value false")
|
||||
require.Equal(t, true, paramsBool(map[string]string{"bonjour": "true"}, "bonjour", false), "valid value true")
|
||||
}
|
||||
|
||||
func TestRulesetError(t *testing.T) {
|
||||
err := (error)(RulesetError("test error string"))
|
||||
require.Equal(t, "test error string", err.Error())
|
||||
|
|
@ -42,10 +17,10 @@ func TestRulesetError(t *testing.T) {
|
|||
|
||||
func TestRulesetBuilderInternals(t *testing.T) {
|
||||
// test Royale with seed
|
||||
rsb := NewRulesetBuilder().WithSeed(3).WithParams(map[string]string{ParamGameType: GameTypeRoyale})
|
||||
rsb := NewRulesetBuilder().WithSeed(3)
|
||||
require.Equal(t, int64(3), rsb.seed)
|
||||
require.Equal(t, GameTypeRoyale, rsb.Ruleset().Name())
|
||||
require.Equal(t, int64(3), rsb.Ruleset().Settings().Seed())
|
||||
require.Equal(t, GameTypeRoyale, rsb.NamedRuleset(GameTypeRoyale).Name())
|
||||
require.Equal(t, int64(3), rsb.NamedRuleset(GameTypeRoyale).Settings().Seed())
|
||||
|
||||
// test parameter merging
|
||||
rsb = NewRulesetBuilder().
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue