Step 4 of 8 from section 8.3 of the specification.
MutantAggregator (core): statuses per distinct mutant (MethodId + mutator + instruction indexes); duplicates count once, contradicting final results count under none and make the method INCONCLUSIVE (contradicting-results:<n>), preliminary NOT_STARTED/STARTED give way to the final status, block order no longer matters.
Listener test with real PIT result objects and a real ReportOptions: merged blocks, byte-identical report for every order, duplicates, contradictions.
Functional test: every mutant of PIT's mutations.xml is counted exactly once; PIT's analysis ran once.
ADR 0003, feature 04, MC-014 to MC-018 mapped.
CI on werkator.javagil.de: green (33 s), 79 unit and 10 functional tests.
Step 4 of 8 from section 8.3 of the specification.
- `MutantAggregator` (core): statuses per distinct mutant (MethodId + mutator + instruction indexes); duplicates count once, contradicting final results count under none and make the method INCONCLUSIVE (`contradicting-results:<n>`), preliminary NOT_STARTED/STARTED give way to the final status, block order no longer matters.
- Listener test with real PIT result objects and a real `ReportOptions`: merged blocks, byte-identical report for every order, duplicates, contradictions.
- Functional test: every mutant of PIT's `mutations.xml` is counted exactly once; PIT's analysis ran once.
- ADR 0003, feature 04, MC-014 to MC-018 mapped.
CI on werkator.javagil.de: green (33 s), 79 unit and 10 functional tests.
PR-doc: `docs/prs/2026-10-01-PR#5-result-aggregation.md`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
MutantAggregator keeps the statuses per distinct mutant: a repeated
result counts once, contradicting final results count under none and
make the method INCONCLUSIVE, preliminary statuses give way to the
final one, and the order of the result blocks no longer matters. The
listener test drives the listener with real PIT result objects; the
functional test checks every mutant of mutations.xml is counted once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mi
merged commit 6453ecc24b into main2026-10-01 15:59:41 +02:00
mi
deleted branch step-4-aggregation2026-10-01 15:59:41 +02:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Step 4 of 8 from section 8.3 of the specification.
MutantAggregator(core): statuses per distinct mutant (MethodId + mutator + instruction indexes); duplicates count once, contradicting final results count under none and make the method INCONCLUSIVE (contradicting-results:<n>), preliminary NOT_STARTED/STARTED give way to the final status, block order no longer matters.ReportOptions: merged blocks, byte-identical report for every order, duplicates, contradictions.mutations.xmlis counted exactly once; PIT's analysis ran once.CI on werkator.javagil.de: green (33 s), 79 unit and 10 functional tests.
PR-doc:
docs/prs/2026-10-01-PR#5-result-aggregation.md🤖 Generated with Claude Code