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