bgen/test/README

34 lines
1.3 KiB
Text
Raw Permalink Normal View History

2026-04-16 21:04:50 -04:00
Tests for the brogue-genesis generator.
Running
-------
make test # goldens + 1000-seed invariant stress
make stress # 5000-seed invariant stress only
Files
-----
run_tests.sh Runs goldens against current binary, then stress.
update_goldens.sh Regenerates goldens.txt. Run this only after an
intentional change to generation logic.
goldens.txt seed|map_sha256|summary_line, one per committed seed.
What's checked
--------------
1. Map hash stability — sha256 of the ASCII map for each committed seed.
2. Summary line stability — room/loop/lake/bridge counts and connectivity.
3. Connectivity invariant — for a rolling sweep of seeds, every passable
cell must be 4-connected to every other. This is the load-bearing
property of Brogue's pipeline.
When to update the goldens
--------------------------
If you intentionally change generation (new room type, tweak CA rule, change
lake sizes, adjust corridor bounds, reorder phases, etc.), the goldens will
break by design. Inspect the diff, confirm it looks right, then:
make && test/update_goldens.sh
make test
If the stress pass ever reports non-zero failures, a connectivity-preserving
invariant has been broken — investigate before committing.