2026-06-12 03:08:18 +08:00

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