33 lines
1.1 KiB
Go
33 lines
1.1 KiB
Go
package dice
|
|
|
|
import "testing"
|
|
|
|
func TestNormalizeConfigDefaultsRobotUserWinRatePercent(t *testing.T) {
|
|
config, err := NormalizeConfig(Config{})
|
|
if err != nil {
|
|
t.Fatalf("NormalizeConfig failed: %v", err)
|
|
}
|
|
if config.RobotUserWinRatePercent != DefaultRobotUserWinRatePercent || !config.RobotUserWinRatePercentSet {
|
|
t.Fatalf("robot win rate default mismatch: rate=%d set=%v", config.RobotUserWinRatePercent, config.RobotUserWinRatePercentSet)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeConfigKeepsExplicitRobotUserWinRatePercentZero(t *testing.T) {
|
|
config, err := NormalizeConfig(Config{RobotUserWinRatePercent: 0, RobotUserWinRatePercentSet: true})
|
|
if err != nil {
|
|
t.Fatalf("NormalizeConfig failed: %v", err)
|
|
}
|
|
if config.RobotUserWinRatePercent != 0 {
|
|
t.Fatalf("explicit zero win rate should be kept, got %d", config.RobotUserWinRatePercent)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeConfigRejectsInvalidRobotUserWinRatePercent(t *testing.T) {
|
|
tests := []int32{-1, 101}
|
|
for _, rate := range tests {
|
|
if _, err := NormalizeConfig(Config{RobotUserWinRatePercent: rate, RobotUserWinRatePercentSet: true}); err == nil {
|
|
t.Fatalf("NormalizeConfig should reject robot win rate %d", rate)
|
|
}
|
|
}
|
|
}
|