By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Mutation-test Centjes.Report.Balance Opt Centjes.Report.Balance into mutation testing (remove its DisableMutations annotation) and cover every mutation: * lastEntryState: use the transaction's own cumulative balance/price graph directly instead of looking up the last posting (they are equal for a non-empty transaction, so the lookup only added an equivalent, unkillable mutant and a partial 'V.last'); extract the with/without- virtual choice into 'selectVirtual' so it can be tested directly. * Validity (BalanceReport): combine the checks with '<>' instead of 'mconcat [..]' so there is no list-literal mutant; test rejection of a total/balances mismatch. * Tests: selectVirtual, the total-mismatch validity case, and a price-terminated ledger fixture exercising lastEntryState's price branch. * mutation.yaml: skip ConstEmptyList on String literals (description text). * Disable the ConstEmptyList mutant on the unreachable balance-sum-overflow error path.
| Time to Start | Worker time | Duration | Time to finish | Idle | |
| Config | 0s | 1s | 1s | 2s | 0s |
| Eval | 2s | 1m26s | 1m26s | 1m28s | 0s |
| Build | 35s | 10m22s | 4m00s | 4m36s | 6s |
| Suite | 0s | 11m50s | 4m36s | 4m36s | 6s |