test(game): exercise two minutes of autoplay

Add a seeded autoplay scenario that performs a deliberate full-strength charge
for every launcher ball and operates both flippers from live ball position.
Turn the two-minute run into an end-to-end test covering repeated launches,
flipper edges, bumpers, targets, lock holes, claw capture/release, and drains
while rejecting non-finite state.

Document autoplay as the long-run validation entry point and record the expanded
runtime coverage boundary.

Test Plan:
- `cargo test --all-targets` -- 48 passed
- `cargo clippy --all-targets -- -D warnings` -- passed
- `cargo build --profile production` -- passed
- Windows GNU and macOS x86_64 `cargo check` -- passed
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-22 21:33:29 +02:00
parent cd27fc8404
commit 7d28818e23
3 changed files with 71 additions and 6 deletions
+4
View File
@@ -66,6 +66,10 @@ decoded, build-ready subset; it does not replace that evidence archive.
terminal scenarios are driven by a 120 Hz validation clock while production
physics accumulates the recovered 100 Hz substep. Traces include the last
collision-object id and can export the logical 640x460 render target.
- End-to-end gameplay coverage: seeded autoplay charges each launcher ball and
operates both flippers from ball position. The two-minute acceptance run
covers repeated launches, both flippers, targets, bumpers, lock holes, a claw
capture/release pair, and drains while checking every state for finite values.
- Semantic boundary: no claim is made that every trajectory or score tick is
bit-identical to the 16-bit executable. Remaining numeric inference is listed
above instead of being presented as proven parity.