34 lines
1.3 KiB
Text
34 lines
1.3 KiB
Text
|
|
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.
|