FA-57876 / Double-entry ledger accounting / Open access
Trial balance columns: zero net omission · case 01
Fully offset accounts clutter the trial balance as all-zero rows.
ROOT CAUSE
Only accounts with no activity are skipped; accounts whose debits equal credits are kept.
VERIFIED REPAIR
Skip every account whose net balance is zero.
Unsuccessful approach: Requiring no debits as well still keeps accounts that were debited and fully credited.
Case contract
x = [[account_code (digit string), type, total_debits, total_credits], ...]. Net = debits - credits. Zero-net accounts are omitted. A positive net goes in the debit column, a negative net (as a positive number) in the credit column. Rows are ordered by numeric account code. An account is abnormal when its column differs from its normal side (asset, expense, dividend debit-normal; others credit-normal). Return {'rows': [[code, debit, credit]], 'totals': [debits, credits], 'balanced': totals equal exactly, 'abnormal': codes in numeric order}.
Why this case matters
Ledger software must keep debits equal to credits and apply normal-balance, period and cutoff rules exactly; small sign or boundary slips silently misstate financial statements.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
debit_normal = ('asset', 'expense', 'dividend')
rows = []
td = tc = 0
abnormal = []
for acct, kind, dr, cr in x:
net = dr - cr
if dr == 0 and cr == 0:
continue
if net > 0:
rows.append([acct, net, 0])
td += net
else:
rows.append([acct, 0, -net])
tc += -net
if (net > 0) != (kind in debit_normal):
abnormal.append(acct)
rows.sort(key=lambda r: int(r[0]))
return {'rows': rows, 'totals': [td, tc], 'balanced': td == tc, 'abnormal': sorted(abnormal, key=int)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: zero net omission', [['99', 'revenue', 1234, 100], ['510', 'asset', 1234, 1235], ['4000', 'equity', 250, 250]], {'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1], 'balanced': False, 'abnormal': ['99', '510']}], ['control 1', [['4000', 'dividend', 250, 0], ['7200', 'dividend', 5000, 0], ['1500', 'equity', 0, 1]], {'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['101', 'expense', 900, 0], ['2100', 'revenue', 0, 1], ['510', 'liability', 0, 250], ['7200', 'expense', 1234, 5000], ['1500', 'expense', 1234, 1235], ['150', 'expense', 250, 249], ['4000', 'expense', 0, 0]], {'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018], 'balanced': False, 'abnormal': ['1500', '7200']}], ['control 3', [['99', 'expense', 0, -1], ['205', 'asset', 5000, 0], ['510', 'liability', 1234, 100]], {'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0], 'balanced': False, 'abnormal': ['510']}], ['control 4', [['101', 'equity', 0, 5000], ['30', 'equity', 0, 0], ['205', 'liability', 0, 1], ['2100', 'liability', 250, 251], ['4000', 'asset', 1234, 900], ['1010', 'equity', 0, 1234]], {'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'liability', 0, 250], ['99', 'expense', 900, 0], ['1010', 'liability', 100, 5000], ['150', 'expense', 0, 1], ['101', 'liability', 5000, 5001]], {'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['6', 'liability', 250, 0], ['7200', 'asset', 900, 250], ['101', 'liability', 0, 0], ['150', 'revenue', 5000, 5001]], {'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1], 'balanced': False, 'abnormal': ['6']}]], [['regression: zero net omission', [['6', 'expense', 0, 0], ['30', 'asset', 250, 249], ['7200', 'expense', 5000, 5000], ['150', 'expense', 100, 100], ['2100', 'dividend', 900, 901], ['205', 'equity', 100, 101]], {'rows': [['30', 1, 0], ['205', 0, 1], ['2100', 0, 1]], 'totals': [1, 2], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['150', 'liability', 5000, 250], ['2100', 'dividend', 1234, 250], ['4000', 'asset', 250, 1234], ['99', 'equity', 900, 100], ['101', 'equity', 1234, 1233]], {'rows': [['99', 800, 0], ['101', 1, 0], ['150', 4750, 0], ['2100', 984, 0], ['4000', 0, 984]], 'totals': [6535, 984], 'balanced': False, 'abnormal': ['99', '101', '150', '4000']}], ['control 2', [['2100', 'asset', 0, 250], ['99', 'dividend', 5000, 250], ['4000', 'dividend', 0, 0], ['510', 'revenue', 5000, 4999], ['7200', 'revenue', 0, 1], ['1010', 'liability', 250, 249]], {'rows': [['99', 4750, 0], ['510', 1, 0], ['1010', 1, 0], ['2100', 0, 250], ['7200', 0, 1]], 'totals': [4752, 251], 'balanced': False, 'abnormal': ['510', '1010', '2100']}], ['control 3', [['2100', 'equity', 250, 251], ['101', 'liability', 0, -1], ['4000', 'equity', 250, 249], ['7200', 'liability', 0, 0], ['510', 'equity', 5000, 5001], ['150', 'liability', 0, 900]], {'rows': [['101', 1, 0], ['150', 0, 900], ['510', 0, 1], ['2100', 0, 1], ['4000', 1, 0]], 'totals': [2, 902], 'balanced': False, 'abnormal': ['101', '4000']}], ['control 4', [['2100', 'equity', 1234, 0], ['510', 'equity', 0, 0], ['99', 'dividend', 5000, 250], ['4000', 'equity', 5000, 0], ['30', 'asset', 1234, 0], ['7200', 'liability', 100, 1234]], {'rows': [['30', 1234, 0], ['99', 4750, 0], ['2100', 1234, 0], ['4000', 5000, 0], ['7200', 0, 1134]], 'totals': [12218, 1134], 'balanced': False, 'abnormal': ['2100', '4000']}], ['control 5', [['6', 'equity', 100, 101], ['150', 'expense', 0, 1], ['101', 'equity', 100, 250]], {'rows': [['6', 0, 1], ['101', 0, 150], ['150', 0, 1]], 'totals': [0, 152], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['150', 'expense', 0, 100], ['7200', 'liability', 100, 0], ['99', 'asset', 250, 251]], {'rows': [['99', 0, 1], ['150', 0, 100], ['7200', 100, 0]], 'totals': [100, 101], 'balanced': False, 'abnormal': ['99', '150', '7200']}]], [['regression: zero net omission', [['7200', 'expense', 250, 100], ['1500', 'dividend', 100, 250], ['510', 'equity', 5000, 5000], ['150', 'revenue', 900, 1234], ['101', 'dividend', 900, 900]], {'rows': [['150', 0, 334], ['1500', 0, 150], ['7200', 150, 0]], 'totals': [150, 484], 'balanced': False, 'abnormal': ['1500']}], ['control 1', [['2100', 'expense', 100, 5000], ['7200', 'liability', 5000, 100], ['6', 'dividend', 250, 1234], ['99', 'dividend', 0, 1234], ['205', 'expense', 5000, 5001], ['101', 'equity', 0, 1234], ['4000', 'revenue', 250, 5000]], {'rows': [['6', 0, 984], ['99', 0, 1234], ['101', 0, 1234], ['205', 0, 1], ['2100', 0, 4900], ['4000', 0, 4750], ['7200', 4900, 0]], 'totals': [4900, 13103], 'balanced': False, 'abnormal': ['6', '99', '205', '2100', '7200']}], ['control 2', [['2100', 'equity', 0, 100], ['30', 'liability', 250, 249], ['150', 'equity', 900, 5000], ['99', 'revenue', 0, 900]], {'rows': [['30', 1, 0], ['99', 0, 900], ['150', 0, 4100], ['2100', 0, 100]], 'totals': [1, 5100], 'balanced': False, 'abnormal': ['30']}], ['control 3', [['150', 'dividend', 100, 99], ['1500', 'expense', 900, 1234], ['510', 'equity', 1234, 900], ['4000', 'expense', 5000, 900]], {'rows': [['150', 1, 0], ['510', 334, 0], ['1500', 0, 334], ['4000', 4100, 0]], 'totals': [4435, 334], 'balanced': False, 'abnormal': ['510', '1500']}], ['control 4', [['510', 'dividend', 0, 250], ['99', 'asset', 100, 99], ['1500', 'asset', 1234, 900], ['1010', 'expense', 0, -1], ['4000', 'asset', 5000, 100], ['2100', 'liability', 250, 900]], {'rows': [['99', 1, 0], ['510', 0, 250], ['1010', 1, 0], ['1500', 334, 0], ['2100', 0, 650], ['4000', 4900, 0]], 'totals': [5236, 900], 'balanced': False, 'abnormal': ['510']}], ['control 5', [['101', 'equity', 5000, 0], ['99', 'asset', 900, 250], ['2100', 'equity', 100, 0], ['150', 'liability', 0, 250], ['1500', 'revenue', 0, 0]], {'rows': [['99', 650, 0], ['101', 5000, 0], ['150', 0, 250], ['2100', 100, 0]], 'totals': [5750, 250], 'balanced': False, 'abnormal': ['101', '2100']}], ['control 6', [['150', 'asset', 5000, 900], ['205', 'expense', 0, 1234], ['7200', 'asset', 0, 5000]], {'rows': [['150', 4100, 0], ['205', 0, 1234], ['7200', 0, 5000]], 'totals': [4100, 6234], 'balanced': False, 'abnormal': ['205', '7200']}]], [['regression: zero net omission', [['99', 'liability', 1234, 1233], ['30', 'dividend', 5000, 900], ['150', 'liability', 1234, 1234], ['1010', 'liability', 250, 1234], ['510', 'liability', 100, 0], ['4000', 'expense', 100, 100]], {'rows': [['30', 4100, 0], ['99', 1, 0], ['510', 100, 0], ['1010', 0, 984]], 'totals': [4201, 984], 'balanced': False, 'abnormal': ['99', '510']}], ['control 1', [['7200', 'revenue', 100, 250], ['1010', 'revenue', 5000, 900], ['150', 'equity', 100, 99]], {'rows': [['150', 1, 0], ['1010', 4100, 0], ['7200', 0, 150]], 'totals': [4101, 150], 'balanced': False, 'abnormal': ['150', '1010']}], ['control 2', [['7200', 'asset', 1234, 5000], ['150', 'revenue', 5000, 4999], ['1500', 'dividend', 0, 100]], {'rows': [['150', 1, 0], ['1500', 0, 100], ['7200', 0, 3766]], 'totals': [1, 3866], 'balanced': False, 'abnormal': ['150', '1500', '7200']}], ['control 3', [['4000', 'revenue', 250, 1234], ['7200', 'expense', 100, 250], ['1500', 'asset', 250, 249], ['2100', 'equity', 0, 0], ['6', 'liability', 900, 0]], {'rows': [['6', 900, 0], ['1500', 1, 0], ['4000', 0, 984], ['7200', 0, 150]], 'totals': [901, 1134], 'balanced': False, 'abnormal': ['6', '7200']}], ['control 4', [['150', 'expense', 0, 5000], ['1500', 'revenue', 1234, 1233], ['101', 'liability', 0, 900], ['7200', 'dividend', 250, 900]], {'rows': [['101', 0, 900], ['150', 0, 5000], ['1500', 1, 0], ['7200', 0, 650]], 'totals': [1, 6550], 'balanced': False, 'abnormal': ['150', '1500', '7200']}], ['control 5', [['150', 'revenue', 250, 0], ['99', 'asset', 1234, 100], ['1500', 'equity', 1234, 5000], ['510', 'asset', 1234, 100], ['205', 'expense', 100, 99]], {'rows': [['99', 1134, 0], ['150', 250, 0], ['205', 1, 0], ['510', 1134, 0], ['1500', 0, 3766]], 'totals': [2519, 3766], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['6', 'expense', 900, 5000], ['7200', 'revenue', 100, 5000], ['99', 'equity', 0, 100], ['1500', 'equity', 0, 0]], {'rows': [['6', 0, 4100], ['99', 0, 100], ['7200', 0, 4900]], 'totals': [0, 9100], 'balanced': False, 'abnormal': ['6']}]], [['regression: zero net omission', [['4000', 'revenue', 0, 1], ['30', 'expense', 250, 250], ['2100', 'asset', 900, 100]], {'rows': [['2100', 800, 0], ['4000', 0, 1]], 'totals': [800, 1], 'balanced': False, 'abnormal': []}], ['control 1', [['99', 'liability', 5000, 0], ['30', 'liability', 0, 0], ['4000', 'expense', 0, 900], ['205', 'revenue', 900, 5000], ['1010', 'liability', 0, 250]], {'rows': [['99', 5000, 0], ['205', 0, 4100], ['1010', 0, 250], ['4000', 0, 900]], 'totals': [5000, 5250], 'balanced': False, 'abnormal': ['99', '4000']}], ['control 2', [['7200', 'expense', 250, 0], ['30', 'revenue', 0, 900], ['150', 'dividend', 0, 5000], ['6', 'asset', 0, 0]], {'rows': [['30', 0, 900], ['150', 0, 5000], ['7200', 250, 0]], 'totals': [250, 5900], 'balanced': False, 'abnormal': ['150']}], ['control 3', [['1500', 'liability', 100, 900], ['99', 'expense', 900, 0], ['2100', 'revenue', 250, 900], ['510', 'dividend', 100, 250], ['6', 'liability', 0, 0], ['101', 'liability', 100, 250]], {'rows': [['99', 900, 0], ['101', 0, 150], ['510', 0, 150], ['1500', 0, 800], ['2100', 0, 650]], 'totals': [900, 1750], 'balanced': False, 'abnormal': ['510']}], ['control 4', [['30', 'asset', 0, 1], ['510', 'revenue', 5000, 0], ['1010', 'expense', 100, 99], ['4000', 'equity', 0, 0], ['2100', 'dividend', 5000, 0]], {'rows': [['30', 0, 1], ['510', 5000, 0], ['1010', 1, 0], ['2100', 5000, 0]], 'totals': [10001, 1], 'balanced': False, 'abnormal': ['30', '510']}], ['control 5', [['510', 'equity', 0, 900], ['7200', 'revenue', 250, 251], ['6', 'liability', 250, 100], ['1010', 'equity', 5000, 0]], {'rows': [['6', 150, 0], ['510', 0, 900], ['1010', 5000, 0], ['7200', 0, 1]], 'totals': [5150, 901], 'balanced': False, 'abnormal': ['6', '1010']}], ['control 6', [['150', 'revenue', 100, 900], ['6', 'asset', 100, 5000], ['99', 'expense', 5000, 1234], ['2100', 'asset', 0, 0]], {'rows': [['6', 0, 4900], ['99', 3766, 0], ['150', 0, 800]], 'totals': [3766, 5700], 'balanced': False, 'abnormal': ['6']}]]]
for label, args, expected in fixtures[N-1]:
try:
actual = solve(args)
except Exception as exc:
actual = 'raised ' + type(exc).__name__
check(label, actual, expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: zero net omission | {'abnormal': ['99', '510'], 'balanced': False, 'rows': [['99', 1134, 0], ['510', 0, 1], ['4000', 0, 0]], 'totals': [1134, 1]} | {'abnormal': ['99', '510'], 'balanced': False, 'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1]} | Failed |
| control 1 | {'abnormal': [], 'balanced': False, 'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1]} | {'abnormal': [], 'balanced': False, 'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1]} | Passed |
| control 2 | {'abnormal': ['1500', '7200'], 'balanced': False, 'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018]} | {'abnormal': ['1500', '7200'], 'balanced': False, 'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018]} | Passed |
| control 3 | {'abnormal': ['510'], 'balanced': False, 'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0]} | {'abnormal': ['510'], 'balanced': False, 'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0]} | Passed |
| control 4 | {'abnormal': [], 'balanced': False, 'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236]} | {'abnormal': [], 'balanced': False, 'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236]} | Passed |
| control 5 | {'abnormal': ['150'], 'balanced': False, 'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152]} | {'abnormal': ['150'], 'balanced': False, 'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152]} | Passed |
| control 6 | {'abnormal': ['6'], 'balanced': False, 'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1]} | {'abnormal': ['6'], 'balanced': False, 'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1]} | Passed |
SHA-256 / dd962af2d315126ac7df5b740f68005eb684adfcb240a2113135d7d388ca1439
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
debit_normal = ('asset', 'expense', 'dividend')
rows = []
td = tc = 0
abnormal = []
for acct, kind, dr, cr in x:
net = dr - cr
if net == 0 and dr == 0:
continue
if net > 0:
rows.append([acct, net, 0])
td += net
else:
rows.append([acct, 0, -net])
tc += -net
if (net > 0) != (kind in debit_normal):
abnormal.append(acct)
rows.sort(key=lambda r: int(r[0]))
return {'rows': rows, 'totals': [td, tc], 'balanced': td == tc, 'abnormal': sorted(abnormal, key=int)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: zero net omission', [['99', 'revenue', 1234, 100], ['510', 'asset', 1234, 1235], ['4000', 'equity', 250, 250]], {'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1], 'balanced': False, 'abnormal': ['99', '510']}], ['control 1', [['4000', 'dividend', 250, 0], ['7200', 'dividend', 5000, 0], ['1500', 'equity', 0, 1]], {'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['101', 'expense', 900, 0], ['2100', 'revenue', 0, 1], ['510', 'liability', 0, 250], ['7200', 'expense', 1234, 5000], ['1500', 'expense', 1234, 1235], ['150', 'expense', 250, 249], ['4000', 'expense', 0, 0]], {'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018], 'balanced': False, 'abnormal': ['1500', '7200']}], ['control 3', [['99', 'expense', 0, -1], ['205', 'asset', 5000, 0], ['510', 'liability', 1234, 100]], {'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0], 'balanced': False, 'abnormal': ['510']}], ['control 4', [['101', 'equity', 0, 5000], ['30', 'equity', 0, 0], ['205', 'liability', 0, 1], ['2100', 'liability', 250, 251], ['4000', 'asset', 1234, 900], ['1010', 'equity', 0, 1234]], {'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'liability', 0, 250], ['99', 'expense', 900, 0], ['1010', 'liability', 100, 5000], ['150', 'expense', 0, 1], ['101', 'liability', 5000, 5001]], {'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['6', 'liability', 250, 0], ['7200', 'asset', 900, 250], ['101', 'liability', 0, 0], ['150', 'revenue', 5000, 5001]], {'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1], 'balanced': False, 'abnormal': ['6']}]], [['regression: zero net omission', [['6', 'expense', 0, 0], ['30', 'asset', 250, 249], ['7200', 'expense', 5000, 5000], ['150', 'expense', 100, 100], ['2100', 'dividend', 900, 901], ['205', 'equity', 100, 101]], {'rows': [['30', 1, 0], ['205', 0, 1], ['2100', 0, 1]], 'totals': [1, 2], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['150', 'liability', 5000, 250], ['2100', 'dividend', 1234, 250], ['4000', 'asset', 250, 1234], ['99', 'equity', 900, 100], ['101', 'equity', 1234, 1233]], {'rows': [['99', 800, 0], ['101', 1, 0], ['150', 4750, 0], ['2100', 984, 0], ['4000', 0, 984]], 'totals': [6535, 984], 'balanced': False, 'abnormal': ['99', '101', '150', '4000']}], ['control 2', [['2100', 'asset', 0, 250], ['99', 'dividend', 5000, 250], ['4000', 'dividend', 0, 0], ['510', 'revenue', 5000, 4999], ['7200', 'revenue', 0, 1], ['1010', 'liability', 250, 249]], {'rows': [['99', 4750, 0], ['510', 1, 0], ['1010', 1, 0], ['2100', 0, 250], ['7200', 0, 1]], 'totals': [4752, 251], 'balanced': False, 'abnormal': ['510', '1010', '2100']}], ['control 3', [['2100', 'equity', 250, 251], ['101', 'liability', 0, -1], ['4000', 'equity', 250, 249], ['7200', 'liability', 0, 0], ['510', 'equity', 5000, 5001], ['150', 'liability', 0, 900]], {'rows': [['101', 1, 0], ['150', 0, 900], ['510', 0, 1], ['2100', 0, 1], ['4000', 1, 0]], 'totals': [2, 902], 'balanced': False, 'abnormal': ['101', '4000']}], ['control 4', [['2100', 'equity', 1234, 0], ['510', 'equity', 0, 0], ['99', 'dividend', 5000, 250], ['4000', 'equity', 5000, 0], ['30', 'asset', 1234, 0], ['7200', 'liability', 100, 1234]], {'rows': [['30', 1234, 0], ['99', 4750, 0], ['2100', 1234, 0], ['4000', 5000, 0], ['7200', 0, 1134]], 'totals': [12218, 1134], 'balanced': False, 'abnormal': ['2100', '4000']}], ['control 5', [['6', 'equity', 100, 101], ['150', 'expense', 0, 1], ['101', 'equity', 100, 250]], {'rows': [['6', 0, 1], ['101', 0, 150], ['150', 0, 1]], 'totals': [0, 152], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['150', 'expense', 0, 100], ['7200', 'liability', 100, 0], ['99', 'asset', 250, 251]], {'rows': [['99', 0, 1], ['150', 0, 100], ['7200', 100, 0]], 'totals': [100, 101], 'balanced': False, 'abnormal': ['99', '150', '7200']}]], [['regression: zero net omission', [['7200', 'expense', 250, 100], ['1500', 'dividend', 100, 250], ['510', 'equity', 5000, 5000], ['150', 'revenue', 900, 1234], ['101', 'dividend', 900, 900]], {'rows': [['150', 0, 334], ['1500', 0, 150], ['7200', 150, 0]], 'totals': [150, 484], 'balanced': False, 'abnormal': ['1500']}], ['control 1', [['2100', 'expense', 100, 5000], ['7200', 'liability', 5000, 100], ['6', 'dividend', 250, 1234], ['99', 'dividend', 0, 1234], ['205', 'expense', 5000, 5001], ['101', 'equity', 0, 1234], ['4000', 'revenue', 250, 5000]], {'rows': [['6', 0, 984], ['99', 0, 1234], ['101', 0, 1234], ['205', 0, 1], ['2100', 0, 4900], ['4000', 0, 4750], ['7200', 4900, 0]], 'totals': [4900, 13103], 'balanced': False, 'abnormal': ['6', '99', '205', '2100', '7200']}], ['control 2', [['2100', 'equity', 0, 100], ['30', 'liability', 250, 249], ['150', 'equity', 900, 5000], ['99', 'revenue', 0, 900]], {'rows': [['30', 1, 0], ['99', 0, 900], ['150', 0, 4100], ['2100', 0, 100]], 'totals': [1, 5100], 'balanced': False, 'abnormal': ['30']}], ['control 3', [['150', 'dividend', 100, 99], ['1500', 'expense', 900, 1234], ['510', 'equity', 1234, 900], ['4000', 'expense', 5000, 900]], {'rows': [['150', 1, 0], ['510', 334, 0], ['1500', 0, 334], ['4000', 4100, 0]], 'totals': [4435, 334], 'balanced': False, 'abnormal': ['510', '1500']}], ['control 4', [['510', 'dividend', 0, 250], ['99', 'asset', 100, 99], ['1500', 'asset', 1234, 900], ['1010', 'expense', 0, -1], ['4000', 'asset', 5000, 100], ['2100', 'liability', 250, 900]], {'rows': [['99', 1, 0], ['510', 0, 250], ['1010', 1, 0], ['1500', 334, 0], ['2100', 0, 650], ['4000', 4900, 0]], 'totals': [5236, 900], 'balanced': False, 'abnormal': ['510']}], ['control 5', [['101', 'equity', 5000, 0], ['99', 'asset', 900, 250], ['2100', 'equity', 100, 0], ['150', 'liability', 0, 250], ['1500', 'revenue', 0, 0]], {'rows': [['99', 650, 0], ['101', 5000, 0], ['150', 0, 250], ['2100', 100, 0]], 'totals': [5750, 250], 'balanced': False, 'abnormal': ['101', '2100']}], ['control 6', [['150', 'asset', 5000, 900], ['205', 'expense', 0, 1234], ['7200', 'asset', 0, 5000]], {'rows': [['150', 4100, 0], ['205', 0, 1234], ['7200', 0, 5000]], 'totals': [4100, 6234], 'balanced': False, 'abnormal': ['205', '7200']}]], [['regression: zero net omission', [['99', 'liability', 1234, 1233], ['30', 'dividend', 5000, 900], ['150', 'liability', 1234, 1234], ['1010', 'liability', 250, 1234], ['510', 'liability', 100, 0], ['4000', 'expense', 100, 100]], {'rows': [['30', 4100, 0], ['99', 1, 0], ['510', 100, 0], ['1010', 0, 984]], 'totals': [4201, 984], 'balanced': False, 'abnormal': ['99', '510']}], ['control 1', [['7200', 'revenue', 100, 250], ['1010', 'revenue', 5000, 900], ['150', 'equity', 100, 99]], {'rows': [['150', 1, 0], ['1010', 4100, 0], ['7200', 0, 150]], 'totals': [4101, 150], 'balanced': False, 'abnormal': ['150', '1010']}], ['control 2', [['7200', 'asset', 1234, 5000], ['150', 'revenue', 5000, 4999], ['1500', 'dividend', 0, 100]], {'rows': [['150', 1, 0], ['1500', 0, 100], ['7200', 0, 3766]], 'totals': [1, 3866], 'balanced': False, 'abnormal': ['150', '1500', '7200']}], ['control 3', [['4000', 'revenue', 250, 1234], ['7200', 'expense', 100, 250], ['1500', 'asset', 250, 249], ['2100', 'equity', 0, 0], ['6', 'liability', 900, 0]], {'rows': [['6', 900, 0], ['1500', 1, 0], ['4000', 0, 984], ['7200', 0, 150]], 'totals': [901, 1134], 'balanced': False, 'abnormal': ['6', '7200']}], ['control 4', [['150', 'expense', 0, 5000], ['1500', 'revenue', 1234, 1233], ['101', 'liability', 0, 900], ['7200', 'dividend', 250, 900]], {'rows': [['101', 0, 900], ['150', 0, 5000], ['1500', 1, 0], ['7200', 0, 650]], 'totals': [1, 6550], 'balanced': False, 'abnormal': ['150', '1500', '7200']}], ['control 5', [['150', 'revenue', 250, 0], ['99', 'asset', 1234, 100], ['1500', 'equity', 1234, 5000], ['510', 'asset', 1234, 100], ['205', 'expense', 100, 99]], {'rows': [['99', 1134, 0], ['150', 250, 0], ['205', 1, 0], ['510', 1134, 0], ['1500', 0, 3766]], 'totals': [2519, 3766], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['6', 'expense', 900, 5000], ['7200', 'revenue', 100, 5000], ['99', 'equity', 0, 100], ['1500', 'equity', 0, 0]], {'rows': [['6', 0, 4100], ['99', 0, 100], ['7200', 0, 4900]], 'totals': [0, 9100], 'balanced': False, 'abnormal': ['6']}]], [['regression: zero net omission', [['4000', 'revenue', 0, 1], ['30', 'expense', 250, 250], ['2100', 'asset', 900, 100]], {'rows': [['2100', 800, 0], ['4000', 0, 1]], 'totals': [800, 1], 'balanced': False, 'abnormal': []}], ['control 1', [['99', 'liability', 5000, 0], ['30', 'liability', 0, 0], ['4000', 'expense', 0, 900], ['205', 'revenue', 900, 5000], ['1010', 'liability', 0, 250]], {'rows': [['99', 5000, 0], ['205', 0, 4100], ['1010', 0, 250], ['4000', 0, 900]], 'totals': [5000, 5250], 'balanced': False, 'abnormal': ['99', '4000']}], ['control 2', [['7200', 'expense', 250, 0], ['30', 'revenue', 0, 900], ['150', 'dividend', 0, 5000], ['6', 'asset', 0, 0]], {'rows': [['30', 0, 900], ['150', 0, 5000], ['7200', 250, 0]], 'totals': [250, 5900], 'balanced': False, 'abnormal': ['150']}], ['control 3', [['1500', 'liability', 100, 900], ['99', 'expense', 900, 0], ['2100', 'revenue', 250, 900], ['510', 'dividend', 100, 250], ['6', 'liability', 0, 0], ['101', 'liability', 100, 250]], {'rows': [['99', 900, 0], ['101', 0, 150], ['510', 0, 150], ['1500', 0, 800], ['2100', 0, 650]], 'totals': [900, 1750], 'balanced': False, 'abnormal': ['510']}], ['control 4', [['30', 'asset', 0, 1], ['510', 'revenue', 5000, 0], ['1010', 'expense', 100, 99], ['4000', 'equity', 0, 0], ['2100', 'dividend', 5000, 0]], {'rows': [['30', 0, 1], ['510', 5000, 0], ['1010', 1, 0], ['2100', 5000, 0]], 'totals': [10001, 1], 'balanced': False, 'abnormal': ['30', '510']}], ['control 5', [['510', 'equity', 0, 900], ['7200', 'revenue', 250, 251], ['6', 'liability', 250, 100], ['1010', 'equity', 5000, 0]], {'rows': [['6', 150, 0], ['510', 0, 900], ['1010', 5000, 0], ['7200', 0, 1]], 'totals': [5150, 901], 'balanced': False, 'abnormal': ['6', '1010']}], ['control 6', [['150', 'revenue', 100, 900], ['6', 'asset', 100, 5000], ['99', 'expense', 5000, 1234], ['2100', 'asset', 0, 0]], {'rows': [['6', 0, 4900], ['99', 3766, 0], ['150', 0, 800]], 'totals': [3766, 5700], 'balanced': False, 'abnormal': ['6']}]]]
for label, args, expected in fixtures[N-1]:
try:
actual = solve(args)
except Exception as exc:
actual = 'raised ' + type(exc).__name__
check(label, actual, expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: zero net omission | {'abnormal': ['99', '510'], 'balanced': False, 'rows': [['99', 1134, 0], ['510', 0, 1], ['4000', 0, 0]], 'totals': [1134, 1]} | {'abnormal': ['99', '510'], 'balanced': False, 'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1]} | Failed |
| control 1 | {'abnormal': [], 'balanced': False, 'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1]} | {'abnormal': [], 'balanced': False, 'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1]} | Passed |
| control 2 | {'abnormal': ['1500', '7200'], 'balanced': False, 'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018]} | {'abnormal': ['1500', '7200'], 'balanced': False, 'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018]} | Passed |
| control 3 | {'abnormal': ['510'], 'balanced': False, 'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0]} | {'abnormal': ['510'], 'balanced': False, 'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0]} | Passed |
| control 4 | {'abnormal': [], 'balanced': False, 'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236]} | {'abnormal': [], 'balanced': False, 'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236]} | Passed |
| control 5 | {'abnormal': ['150'], 'balanced': False, 'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152]} | {'abnormal': ['150'], 'balanced': False, 'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152]} | Passed |
| control 6 | {'abnormal': ['6'], 'balanced': False, 'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1]} | {'abnormal': ['6'], 'balanced': False, 'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1]} | Passed |
SHA-256 / f8127ae0ede835b4504cff2334e8e3aa478cba7978cc2072b20e25d427808f95
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
debit_normal = ('asset', 'expense', 'dividend')
rows = []
td = tc = 0
abnormal = []
for acct, kind, dr, cr in x:
net = dr - cr
if net == 0:
continue
if net > 0:
rows.append([acct, net, 0])
td += net
else:
rows.append([acct, 0, -net])
tc += -net
if (net > 0) != (kind in debit_normal):
abnormal.append(acct)
rows.sort(key=lambda r: int(r[0]))
return {'rows': rows, 'totals': [td, tc], 'balanced': td == tc, 'abnormal': sorted(abnormal, key=int)}
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression: zero net omission', [['99', 'revenue', 1234, 100], ['510', 'asset', 1234, 1235], ['4000', 'equity', 250, 250]], {'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1], 'balanced': False, 'abnormal': ['99', '510']}], ['control 1', [['4000', 'dividend', 250, 0], ['7200', 'dividend', 5000, 0], ['1500', 'equity', 0, 1]], {'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1], 'balanced': False, 'abnormal': []}], ['control 2', [['101', 'expense', 900, 0], ['2100', 'revenue', 0, 1], ['510', 'liability', 0, 250], ['7200', 'expense', 1234, 5000], ['1500', 'expense', 1234, 1235], ['150', 'expense', 250, 249], ['4000', 'expense', 0, 0]], {'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018], 'balanced': False, 'abnormal': ['1500', '7200']}], ['control 3', [['99', 'expense', 0, -1], ['205', 'asset', 5000, 0], ['510', 'liability', 1234, 100]], {'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0], 'balanced': False, 'abnormal': ['510']}], ['control 4', [['101', 'equity', 0, 5000], ['30', 'equity', 0, 0], ['205', 'liability', 0, 1], ['2100', 'liability', 250, 251], ['4000', 'asset', 1234, 900], ['1010', 'equity', 0, 1234]], {'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236], 'balanced': False, 'abnormal': []}], ['control 5', [['4000', 'liability', 0, 250], ['99', 'expense', 900, 0], ['1010', 'liability', 100, 5000], ['150', 'expense', 0, 1], ['101', 'liability', 5000, 5001]], {'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['6', 'liability', 250, 0], ['7200', 'asset', 900, 250], ['101', 'liability', 0, 0], ['150', 'revenue', 5000, 5001]], {'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1], 'balanced': False, 'abnormal': ['6']}]], [['regression: zero net omission', [['6', 'expense', 0, 0], ['30', 'asset', 250, 249], ['7200', 'expense', 5000, 5000], ['150', 'expense', 100, 100], ['2100', 'dividend', 900, 901], ['205', 'equity', 100, 101]], {'rows': [['30', 1, 0], ['205', 0, 1], ['2100', 0, 1]], 'totals': [1, 2], 'balanced': False, 'abnormal': ['2100']}], ['control 1', [['150', 'liability', 5000, 250], ['2100', 'dividend', 1234, 250], ['4000', 'asset', 250, 1234], ['99', 'equity', 900, 100], ['101', 'equity', 1234, 1233]], {'rows': [['99', 800, 0], ['101', 1, 0], ['150', 4750, 0], ['2100', 984, 0], ['4000', 0, 984]], 'totals': [6535, 984], 'balanced': False, 'abnormal': ['99', '101', '150', '4000']}], ['control 2', [['2100', 'asset', 0, 250], ['99', 'dividend', 5000, 250], ['4000', 'dividend', 0, 0], ['510', 'revenue', 5000, 4999], ['7200', 'revenue', 0, 1], ['1010', 'liability', 250, 249]], {'rows': [['99', 4750, 0], ['510', 1, 0], ['1010', 1, 0], ['2100', 0, 250], ['7200', 0, 1]], 'totals': [4752, 251], 'balanced': False, 'abnormal': ['510', '1010', '2100']}], ['control 3', [['2100', 'equity', 250, 251], ['101', 'liability', 0, -1], ['4000', 'equity', 250, 249], ['7200', 'liability', 0, 0], ['510', 'equity', 5000, 5001], ['150', 'liability', 0, 900]], {'rows': [['101', 1, 0], ['150', 0, 900], ['510', 0, 1], ['2100', 0, 1], ['4000', 1, 0]], 'totals': [2, 902], 'balanced': False, 'abnormal': ['101', '4000']}], ['control 4', [['2100', 'equity', 1234, 0], ['510', 'equity', 0, 0], ['99', 'dividend', 5000, 250], ['4000', 'equity', 5000, 0], ['30', 'asset', 1234, 0], ['7200', 'liability', 100, 1234]], {'rows': [['30', 1234, 0], ['99', 4750, 0], ['2100', 1234, 0], ['4000', 5000, 0], ['7200', 0, 1134]], 'totals': [12218, 1134], 'balanced': False, 'abnormal': ['2100', '4000']}], ['control 5', [['6', 'equity', 100, 101], ['150', 'expense', 0, 1], ['101', 'equity', 100, 250]], {'rows': [['6', 0, 1], ['101', 0, 150], ['150', 0, 1]], 'totals': [0, 152], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['150', 'expense', 0, 100], ['7200', 'liability', 100, 0], ['99', 'asset', 250, 251]], {'rows': [['99', 0, 1], ['150', 0, 100], ['7200', 100, 0]], 'totals': [100, 101], 'balanced': False, 'abnormal': ['99', '150', '7200']}]], [['regression: zero net omission', [['7200', 'expense', 250, 100], ['1500', 'dividend', 100, 250], ['510', 'equity', 5000, 5000], ['150', 'revenue', 900, 1234], ['101', 'dividend', 900, 900]], {'rows': [['150', 0, 334], ['1500', 0, 150], ['7200', 150, 0]], 'totals': [150, 484], 'balanced': False, 'abnormal': ['1500']}], ['control 1', [['2100', 'expense', 100, 5000], ['7200', 'liability', 5000, 100], ['6', 'dividend', 250, 1234], ['99', 'dividend', 0, 1234], ['205', 'expense', 5000, 5001], ['101', 'equity', 0, 1234], ['4000', 'revenue', 250, 5000]], {'rows': [['6', 0, 984], ['99', 0, 1234], ['101', 0, 1234], ['205', 0, 1], ['2100', 0, 4900], ['4000', 0, 4750], ['7200', 4900, 0]], 'totals': [4900, 13103], 'balanced': False, 'abnormal': ['6', '99', '205', '2100', '7200']}], ['control 2', [['2100', 'equity', 0, 100], ['30', 'liability', 250, 249], ['150', 'equity', 900, 5000], ['99', 'revenue', 0, 900]], {'rows': [['30', 1, 0], ['99', 0, 900], ['150', 0, 4100], ['2100', 0, 100]], 'totals': [1, 5100], 'balanced': False, 'abnormal': ['30']}], ['control 3', [['150', 'dividend', 100, 99], ['1500', 'expense', 900, 1234], ['510', 'equity', 1234, 900], ['4000', 'expense', 5000, 900]], {'rows': [['150', 1, 0], ['510', 334, 0], ['1500', 0, 334], ['4000', 4100, 0]], 'totals': [4435, 334], 'balanced': False, 'abnormal': ['510', '1500']}], ['control 4', [['510', 'dividend', 0, 250], ['99', 'asset', 100, 99], ['1500', 'asset', 1234, 900], ['1010', 'expense', 0, -1], ['4000', 'asset', 5000, 100], ['2100', 'liability', 250, 900]], {'rows': [['99', 1, 0], ['510', 0, 250], ['1010', 1, 0], ['1500', 334, 0], ['2100', 0, 650], ['4000', 4900, 0]], 'totals': [5236, 900], 'balanced': False, 'abnormal': ['510']}], ['control 5', [['101', 'equity', 5000, 0], ['99', 'asset', 900, 250], ['2100', 'equity', 100, 0], ['150', 'liability', 0, 250], ['1500', 'revenue', 0, 0]], {'rows': [['99', 650, 0], ['101', 5000, 0], ['150', 0, 250], ['2100', 100, 0]], 'totals': [5750, 250], 'balanced': False, 'abnormal': ['101', '2100']}], ['control 6', [['150', 'asset', 5000, 900], ['205', 'expense', 0, 1234], ['7200', 'asset', 0, 5000]], {'rows': [['150', 4100, 0], ['205', 0, 1234], ['7200', 0, 5000]], 'totals': [4100, 6234], 'balanced': False, 'abnormal': ['205', '7200']}]], [['regression: zero net omission', [['99', 'liability', 1234, 1233], ['30', 'dividend', 5000, 900], ['150', 'liability', 1234, 1234], ['1010', 'liability', 250, 1234], ['510', 'liability', 100, 0], ['4000', 'expense', 100, 100]], {'rows': [['30', 4100, 0], ['99', 1, 0], ['510', 100, 0], ['1010', 0, 984]], 'totals': [4201, 984], 'balanced': False, 'abnormal': ['99', '510']}], ['control 1', [['7200', 'revenue', 100, 250], ['1010', 'revenue', 5000, 900], ['150', 'equity', 100, 99]], {'rows': [['150', 1, 0], ['1010', 4100, 0], ['7200', 0, 150]], 'totals': [4101, 150], 'balanced': False, 'abnormal': ['150', '1010']}], ['control 2', [['7200', 'asset', 1234, 5000], ['150', 'revenue', 5000, 4999], ['1500', 'dividend', 0, 100]], {'rows': [['150', 1, 0], ['1500', 0, 100], ['7200', 0, 3766]], 'totals': [1, 3866], 'balanced': False, 'abnormal': ['150', '1500', '7200']}], ['control 3', [['4000', 'revenue', 250, 1234], ['7200', 'expense', 100, 250], ['1500', 'asset', 250, 249], ['2100', 'equity', 0, 0], ['6', 'liability', 900, 0]], {'rows': [['6', 900, 0], ['1500', 1, 0], ['4000', 0, 984], ['7200', 0, 150]], 'totals': [901, 1134], 'balanced': False, 'abnormal': ['6', '7200']}], ['control 4', [['150', 'expense', 0, 5000], ['1500', 'revenue', 1234, 1233], ['101', 'liability', 0, 900], ['7200', 'dividend', 250, 900]], {'rows': [['101', 0, 900], ['150', 0, 5000], ['1500', 1, 0], ['7200', 0, 650]], 'totals': [1, 6550], 'balanced': False, 'abnormal': ['150', '1500', '7200']}], ['control 5', [['150', 'revenue', 250, 0], ['99', 'asset', 1234, 100], ['1500', 'equity', 1234, 5000], ['510', 'asset', 1234, 100], ['205', 'expense', 100, 99]], {'rows': [['99', 1134, 0], ['150', 250, 0], ['205', 1, 0], ['510', 1134, 0], ['1500', 0, 3766]], 'totals': [2519, 3766], 'balanced': False, 'abnormal': ['150']}], ['control 6', [['6', 'expense', 900, 5000], ['7200', 'revenue', 100, 5000], ['99', 'equity', 0, 100], ['1500', 'equity', 0, 0]], {'rows': [['6', 0, 4100], ['99', 0, 100], ['7200', 0, 4900]], 'totals': [0, 9100], 'balanced': False, 'abnormal': ['6']}]], [['regression: zero net omission', [['4000', 'revenue', 0, 1], ['30', 'expense', 250, 250], ['2100', 'asset', 900, 100]], {'rows': [['2100', 800, 0], ['4000', 0, 1]], 'totals': [800, 1], 'balanced': False, 'abnormal': []}], ['control 1', [['99', 'liability', 5000, 0], ['30', 'liability', 0, 0], ['4000', 'expense', 0, 900], ['205', 'revenue', 900, 5000], ['1010', 'liability', 0, 250]], {'rows': [['99', 5000, 0], ['205', 0, 4100], ['1010', 0, 250], ['4000', 0, 900]], 'totals': [5000, 5250], 'balanced': False, 'abnormal': ['99', '4000']}], ['control 2', [['7200', 'expense', 250, 0], ['30', 'revenue', 0, 900], ['150', 'dividend', 0, 5000], ['6', 'asset', 0, 0]], {'rows': [['30', 0, 900], ['150', 0, 5000], ['7200', 250, 0]], 'totals': [250, 5900], 'balanced': False, 'abnormal': ['150']}], ['control 3', [['1500', 'liability', 100, 900], ['99', 'expense', 900, 0], ['2100', 'revenue', 250, 900], ['510', 'dividend', 100, 250], ['6', 'liability', 0, 0], ['101', 'liability', 100, 250]], {'rows': [['99', 900, 0], ['101', 0, 150], ['510', 0, 150], ['1500', 0, 800], ['2100', 0, 650]], 'totals': [900, 1750], 'balanced': False, 'abnormal': ['510']}], ['control 4', [['30', 'asset', 0, 1], ['510', 'revenue', 5000, 0], ['1010', 'expense', 100, 99], ['4000', 'equity', 0, 0], ['2100', 'dividend', 5000, 0]], {'rows': [['30', 0, 1], ['510', 5000, 0], ['1010', 1, 0], ['2100', 5000, 0]], 'totals': [10001, 1], 'balanced': False, 'abnormal': ['30', '510']}], ['control 5', [['510', 'equity', 0, 900], ['7200', 'revenue', 250, 251], ['6', 'liability', 250, 100], ['1010', 'equity', 5000, 0]], {'rows': [['6', 150, 0], ['510', 0, 900], ['1010', 5000, 0], ['7200', 0, 1]], 'totals': [5150, 901], 'balanced': False, 'abnormal': ['6', '1010']}], ['control 6', [['150', 'revenue', 100, 900], ['6', 'asset', 100, 5000], ['99', 'expense', 5000, 1234], ['2100', 'asset', 0, 0]], {'rows': [['6', 0, 4900], ['99', 3766, 0], ['150', 0, 800]], 'totals': [3766, 5700], 'balanced': False, 'abnormal': ['6']}]]]
for label, args, expected in fixtures[N-1]:
try:
actual = solve(args)
except Exception as exc:
actual = 'raised ' + type(exc).__name__
check(label, actual, expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: zero net omission | {'abnormal': ['99', '510'], 'balanced': False, 'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1]} | {'abnormal': ['99', '510'], 'balanced': False, 'rows': [['99', 1134, 0], ['510', 0, 1]], 'totals': [1134, 1]} | Passed |
| control 1 | {'abnormal': [], 'balanced': False, 'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1]} | {'abnormal': [], 'balanced': False, 'rows': [['1500', 0, 1], ['4000', 250, 0], ['7200', 5000, 0]], 'totals': [5250, 1]} | Passed |
| control 2 | {'abnormal': ['1500', '7200'], 'balanced': False, 'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018]} | {'abnormal': ['1500', '7200'], 'balanced': False, 'rows': [['101', 900, 0], ['150', 1, 0], ['510', 0, 250], ['1500', 0, 1], ['2100', 0, 1], ['7200', 0, 3766]], 'totals': [901, 4018]} | Passed |
| control 3 | {'abnormal': ['510'], 'balanced': False, 'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0]} | {'abnormal': ['510'], 'balanced': False, 'rows': [['99', 1, 0], ['205', 5000, 0], ['510', 1134, 0]], 'totals': [6135, 0]} | Passed |
| control 4 | {'abnormal': [], 'balanced': False, 'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236]} | {'abnormal': [], 'balanced': False, 'rows': [['101', 0, 5000], ['205', 0, 1], ['1010', 0, 1234], ['2100', 0, 1], ['4000', 334, 0]], 'totals': [334, 6236]} | Passed |
| control 5 | {'abnormal': ['150'], 'balanced': False, 'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152]} | {'abnormal': ['150'], 'balanced': False, 'rows': [['99', 900, 0], ['101', 0, 1], ['150', 0, 1], ['1010', 0, 4900], ['4000', 0, 250]], 'totals': [900, 5152]} | Passed |
| control 6 | {'abnormal': ['6'], 'balanced': False, 'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1]} | {'abnormal': ['6'], 'balanced': False, 'rows': [['6', 250, 0], ['150', 0, 1], ['7200', 650, 0]], 'totals': [900, 1]} | Passed |
SHA-256 / c79ad8985df55754f6d710ab5509cd37a9d16fe085ca41fac0c1e56e77058d1e
Verification & scope
A deterministic bounded teaching model with stipulated toy bookkeeping rules stated in the contract; amounts are integer cents; it makes no claim of conformance to any accounting standard or product. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:46:21.350208+00:00.
Case digest / 88b7ee8a757575ed5ff2b4216934d47f732d47ed8dd8480b282d9c4a766eb8f9