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.