Commit 1655176
committed
test(shader-transitions): add midpoint (p=0.5) regression invariants for all shaders
Existing smoke tests cover only the endpoints (p=0 ≈ from, p=1 ≈ to),
which miss a class of regressions that surface specifically at the
midpoint — where the transition is most visible to viewers — and let
shaders silently rot in CI:
• A shader becomes a no-op (returns input as-is)
• A shader prematurely completes (returns target at midpoint)
• A shader doesn't write to the output buffer at all
• A shader loses determinism (Math.random / Date.now / leaked state)
Add four invariants every shader must satisfy at p=0.5, applied via a
describe loop over ALL_SHADERS so any new transition added to the
registry automatically picks up the same coverage:
1. output ≠ from catches no-ops
2. output ≠ to catches premature completion
3. output is non-zero catches blank output
4. output is deterministic catches accidental non-determinism
Uses two distinct uniform input colors (40000/30000/20000 vs
10000/10000/10000) so equality checks have distinct byte patterns to
compare against. Even shaders that warp UVs (which would be no-ops on
uniform input alone) produce mix16(from, to, 0.5) at every pixel,
distinct from both inputs.
60 new tests (4 invariants × 15 shaders), all passing.
Follow-up to plans/hdr-followups.md Chunk 9G.1 parent 5b22904 commit 1655176
1 file changed
Lines changed: 64 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
576 | 576 | | |
577 | 577 | | |
578 | 578 | | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
579 | 643 | | |
580 | 644 | | |
581 | 645 | | |
| |||
0 commit comments