You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(cliffs): two LEVERS - no entity suppresses a cliff, lava is 166/169 (#84) (#111)
#110 asked for a lever that isolates the non-ore suppressor the way
`autoplace_controls` isolated the ore, with the suspect unnamed. This adds
two, through `map_gen_settings.autoplace_settings` - a knob
`autoplace_controls` cannot reach, since a control only touches prototypes
that name one and the rocks, chimneys and `crater-cliff` name none.
**No placed entity suppresses a Vulcanus cliff.** Switching the whole
`entity` category off removes 409 rocks, 115 chimneys, 45 rock explosions
and all 8 `crater-cliff`s, and the cliff set does not move by one cell.
Rocks were previously refuted only statistically against our own rock
model (#109); this is the class excluded positively, with the lever's own
proof in the same run three ways.
**Cliffs do not collide with each other**, refuted by the game's own
output rather than a model: 293 pairs of its own cliffs have overlapping
collision rectangles.
**Lava suppresses 169 cells and our rejection gets 166, with 5 false
positives** - precision 0.9708, recall 0.9822, the first real score that
rule has had. Its errors ARE the residual: the 3 it misses are 3 of the 10
surplus cells and the 5 it invents include all 3 of the port's missing
ones. They point both ways, so the box's shape is wrong rather than its
size - left measured and unfixed, per #88.
**With neither ore nor lava, recall is 1.0000** (1049 matched, 9 wrong, 12
surplus, 0 missing of 1058). The port produces a strict superset of the
game's cells, so everything left is over-placement and the question is now
what else the game refuses.
Claude-Session: https://claude.ai/code/session_015C8AbtvYMdc7ed3rnAZbhP
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: test/fixtures/PROVENANCE.json
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -220,6 +220,10 @@
220
220
"factorioVersion": "2.1.12",
221
221
"evidence": "captured 2026-08-03 by test/oracle/capture.ts vulcanus-cliff-fine-sweep against the installed binary, which pnpm refs:sync --check reported in sync at 2.1.12 at capture time. The Vulcanus region [1500,1500] at 41 values of cliff_elevation_0 (700..900 step 5) with the rule collapsed (cliff_smoothing=0, cliff_elevation_interval=1e6) and the cliffiness gate held open by routing the cliffiness PROPERTY at the literal 1. Each placed cell's orientation asserts one-sided constraints on its corners, so the sweep brackets the grid-4 cliff-elevation field to the step - it MEASURES the field oracle-vulcanus-cliff-bands could only bound from below. Overlaps that fixture at L=790 and reproduces it cell-for-cell (494/494), which is the determinism check. Each case records the cliff_settings the SURFACE reported back."
"evidence": "captured 2026-08-03 by test/oracle/capture.ts vulcanus-cliff-suppressor-levers against the installed binary, which pnpm refs:sync --check reported in sync at 2.1.12 at capture time. Five arms over [1500,1500] that pull two LEVERS through map_gen_settings.autoplace_settings rather than modelling a suppressor: the whole entity category off (treat_missing_as_default = false, no settings), and lava/lava-hot dropped from the tile category while every other tile is kept. Each arm reads the autoplace_settings the SURFACE reported back AND counts the lava tiles in the region it just generated, so an override that failed to apply cannot pass as a term that does not matter; the two entity-lever arms additionally dump EVERY entity in the region with its type, and every arm dumps the prototype collision geometry, all from ONE generated surface.\n\nSeed forced to 123456 on a create_surface() Vulcanus surface, like every other Vulcanus cliff fixture."
"evidence": "captured 2026-08-02 by test/oracle/capture.ts vulcanus-cliff-ore-direction against the installed binary, which pnpm refs:sync --check reported in sync at 2.1.12 at capture time. Six paired ON/OFF arms that turn the Vulcanus resources off through map_gen_settings.autoplace_controls (size = 0) and regenerate: [1500,1500] at default cliff settings with all resources on, all off, calcite only off and geyser only off, plus [0,0] with the cliff rule collapsed to a single contour at 70 with the gate held open and smoothing off, resources on and off. Each case records the autoplace controls AND the cliff_settings the SURFACE reported back, so every override is proven to have applied, and each dumps the cliffs, the resources and the prototype collision geometry from ONE generated surface so the two populations are never compared across separate worlds."
0 commit comments