engine: tune the default world to a soft program

DefaultConfig now describes a more realistic world: a moderately novel fake
(novelty 0.3), some ambient harm awareness (0.2), and a strong but imperfect
education program (programEffect 0.8) so educated students mostly, not always,
refuse. The headline shifts from 99/70/7 (a perfect program) to 100/83/21 out
of 120 (83/69/18 percent): no program >> random >> most-connected still holds,
targeting still wins by ~4x, but the program is no longer a perfect wall.
Golden values re-pinned in the engine and API tests; the preset base matches.
The forward-chance formula test now neutralises its baseline so it pins the
formula, not the tuned defaults.
This commit is contained in:
Justin Visser 2026-06-18 22:19:44 +02:00
parent 4ac7ba1624
commit c1201caf11
6 changed files with 27 additions and 18 deletions

View file

@ -81,9 +81,9 @@ func TestComparisonEndpointMatchesGoldenValues(t *testing.T) {
// The same golden values the engine tests pin; the API must not
// change them in transit.
wantReached := map[engine.Strategy]int{
engine.StrategyNone: 99,
engine.StrategyRandom: 70,
engine.StrategyMostConnected: 7,
engine.StrategyNone: 100,
engine.StrategyRandom: 83,
engine.StrategyMostConnected: 21,
}
if len(comparison.Results) != len(wantReached) {
t.Fatalf("got %d results, want %d", len(comparison.Results), len(wantReached))

View file

@ -29,8 +29,8 @@ func TestScenarioEndpointReturnsResultAndTopology(t *testing.T) {
t.Fatal(err)
}
if response.Result.NumReached != 7 { // the pinned golden value
t.Errorf("NumReached = %d, want 7", response.Result.NumReached)
if response.Result.NumReached != 21 { // the pinned golden value (tuned default world)
t.Errorf("NumReached = %d, want 21", response.Result.NumReached)
}
if response.Config != request.Config {
t.Errorf("config not echoed: got %+v", response.Config)