{"abstract":"Running balances in the report start from zero.","category":"Double-entry ledger accounting","checks":7,"contract":"x = {'normal': 'D'|'C', 'opening': balance before all lines, 'lines': [[seq, day, side, amount]], 'from': day, 'to': day}. Balances are signed positive on the normal side. The report opening is the opening plus every line dated before 'from'. Lines dated from..to inclusive are listed in (day, seq) order with the running balance after each; closing is the last running balance (the report opening if none). Return {'opening', 'rows': [[seq, day, running]], 'closing'}.","evaluation_group":"w2-double-entry-ledger-accounting-account-running-balance","failed_approach":"Seeding with the stored opening ignores activity dated before the report window.","family":"w2-double-entry-ledger-accounting-account-running-balance-running-balance-seed","id":"FA-58081","implementations":{"attempt":{"sha256":"1bbb0873e9682fe6baf276451bd569d7844a8cb5fe385e4de1190b7dff25845a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sign = {'D': 1, 'C': -1} if x['normal'] == 'D' else {'D': -1, 'C': 1}\n    lines = sorted(x['lines'], key=lambda l: (l[1], l[0]))\n    opening = x['opening'] + sum(sign[s] * a for q, d, s, a in lines if d < x['from'])\n    bal = x['opening']\n    rows = []\n    for seq, date, side, amt in lines:\n        if x['from'] <= date <= x['to']:\n            bal += sign[side] * amt\n            rows.append([seq, date, bal])\n    return {'opening': opening, 'rows': rows, 'closing': bal}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: running balance seed', {'normal': 'C', 'opening': 0, 'lines': [[3, 5, 'C', 50], [6, 1, 'C', 10], [5, 10, 'C', 50], [4, 12, 'D', 300], [8, 5, 'D', 125], [2, 5, 'C', 125], [7, 12, 'D', 125], [1, 12, 'C', 50]], 'from': 6, 'to': 6}, {'opening': 60, 'rows': [], 'closing': 60}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 1, 'D', 10], [3, 12, 'D', 50], [2, 5, 'D', 300]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[1, 1, -10], [2, 5, -310]], 'closing': -310}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[4, 1, 'D', 125], [7, 12, 'C', 50], [6, 10, 'C', 125], [3, 5, 'D', 300], [1, 10, 'C', 50], [2, 5, 'C', 50], [5, 1, 'D', 50]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[4, 1, -125], [5, 1, -175]], 'closing': -175}], ['control 3', {'normal': 'D', 'opening': 0, 'lines': [[5, 5, 'D', 300], [6, 12, 'C', 125], [4, 3, 'D', 300], [8, 5, 'D', 300], [3, 3, 'D', 50], [7, 1, 'C', 300], [2, 5, 'C', 125], [1, 5, 'D', 300]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[7, 1, -300], [3, 3, -250], [4, 3, 50]], 'closing': 50}], ['control 4', {'normal': 'D', 'opening': 0, 'lines': [[1, 10, 'C', 50], [4, 5, 'D', 300], [3, 5, 'D', 300], [2, 3, 'C', 10]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[2, 3, -10], [3, 5, 290], [4, 5, 590]], 'closing': 590}], ['control 5', {'normal': 'C', 'opening': 0, 'lines': [[4, 5, 'C', 50], [1, 5, 'D', 300], [2, 8, 'C', 125], [3, 3, 'C', 50], [5, 3, 'C', 125]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 6', {'normal': 'C', 'opening': 0, 'lines': [[2, 5, 'D', 125], [5, 3, 'C', 125], [6, 12, 'D', 125], [4, 8, 'C', 300], [3, 8, 'C', 10], [1, 3, 'C', 300]], 'from': 3, 'to': 8}, {'opening': 0, 'rows': [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], 'closing': 610}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[4, 8, 'C', 50], [1, 10, 'C', 50], [2, 12, 'D', 125], [6, 10, 'D', 125], [5, 5, 'D', 10], [3, 12, 'D', 50]], 'from': 3, 'to': 8}, {'opening': 250, 'rows': [[5, 5, 240], [4, 8, 290]], 'closing': 290}], ['regression: running balance seed, partial-repair probe', {'normal': 'D', 'opening': 1000, 'lines': [[2, 5, 'C', 300], [3, 3, 'D', 125], [4, 8, 'C', 50], [1, 5, 'C', 125], [5, 3, 'C', 300]], 'from': 5, 'to': 10}, {'opening': 825, 'rows': [[1, 5, 700], [2, 5, 400], [4, 8, 350]], 'closing': 350}], ['control 1', {'normal': 'D', 'opening': 0, 'lines': [[2, 12, 'D', 300], [5, 8, 'C', 50], [6, 12, 'C', 125], [3, 3, 'D', 10], [4, 5, 'C', 10], [1, 5, 'D', 10], [7, 8, 'C', 10]], 'from': 3, 'to': 3}, {'opening': 0, 'rows': [[3, 3, 10]], 'closing': 10}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[6, 8, 'C', 50], [4, 12, 'C', 125], [3, 10, 'D', 300], [1, 10, 'C', 300], [5, 12, 'D', 50], [2, 8, 'C', 50]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[2, 8, 50], [6, 8, 100]], 'closing': 100}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[2, 1, 'C', 50], [3, 1, 'C', 10], [1, 12, 'D', 50]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [[2, 1, 50], [3, 1, 60]], 'closing': 60}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[3, 8, 'C', 125], [1, 5, 'D', 300], [2, 10, 'C', 300]], 'from': 5, 'to': 5}, {'opening': 0, 'rows': [[1, 5, -300]], 'closing': -300}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[1, 5, 'D', 300], [5, 5, 'D', 125], [3, 3, 'D', 50], [4, 12, 'C', 50], [2, 5, 'D', 300], [6, 5, 'D', 125]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[3, 3, 50]], 'closing': 50}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[2, 12, 'C', 50], [1, 8, 'C', 125], [3, 5, 'D', 125]], 'from': 5, 'to': 7}, {'opening': 250, 'rows': [[3, 5, 125]], 'closing': 125}], ['regression: running balance seed, partial-repair probe', {'normal': 'C', 'opening': 0, 'lines': [[3, 1, 'D', 10], [2, 5, 'D', 125], [1, 1, 'D', 10], [5, 5, 'D', 300], [4, 3, 'C', 125]], 'from': 3, 'to': 8}, {'opening': -20, 'rows': [[4, 3, 105], [2, 5, -20], [5, 5, -320]], 'closing': -320}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 8, 'D', 125], [3, 10, 'C', 300], [2, 3, 'C', 300]], 'from': 3, 'to': 5}, {'opening': 0, 'rows': [[2, 3, 300]], 'closing': 300}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[3, 3, 'D', 300], [2, 8, 'C', 300], [1, 5, 'C', 50]], 'from': 3, 'to': 10}, {'opening': 0, 'rows': [[3, 3, -300], [1, 5, -250], [2, 8, 50]], 'closing': 50}], ['control 3', {'normal': 'D', 'opening': 0, 'lines': [[4, 8, 'D', 50], [1, 10, 'C', 50], [5, 3, 'C', 300], [2, 8, 'D', 10], [3, 10, 'C', 300], [6, 8, 'D', 125]], 'from': 3, 'to': 8}, {'opening': 0, 'rows': [[5, 3, -300], [2, 8, -290], [4, 8, -240], [6, 8, -115]], 'closing': -115}], ['control 4', {'normal': 'D', 'opening': 0, 'lines': [[2, 3, 'D', 50], [3, 12, 'D', 300], [1, 3, 'C', 50]], 'from': 6, 'to': 11}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[2, 3, 'C', 300], [1, 5, 'D', 10], [3, 5, 'D', 125]], 'from': 1, 'to': 6}, {'opening': 0, 'rows': [[2, 3, -300], [1, 5, -290], [3, 5, -165]], 'closing': -165}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[2, 3, 'D', 10], [3, 5, 'D', 50], [4, 8, 'D', 10], [1, 5, 'D', 300]], 'from': 6, 'to': 6}, {'opening': -110, 'rows': [], 'closing': -110}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 5, 'D', 300], [4, 8, 'C', 300], [3, 12, 'C', 50], [2, 10, 'C', 125]], 'from': 1, 'to': 6}, {'opening': 0, 'rows': [[1, 5, -300]], 'closing': -300}], ['control 2', {'normal': 'D', 'opening': 0, 'lines': [[1, 8, 'D', 50], [2, 12, 'C', 50], [4, 1, 'D', 50], [5, 1, 'C', 50], [3, 10, 'D', 125]], 'from': 6, 'to': 8}, {'opening': 0, 'rows': [[1, 8, 50]], 'closing': 50}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[3, 5, 'C', 300], [1, 12, 'D', 125], [2, 8, 'C', 300]], 'from': 5, 'to': 10}, {'opening': 0, 'rows': [[3, 5, 300], [2, 8, 600]], 'closing': 600}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[2, 5, 'C', 10], [3, 5, 'D', 50], [1, 3, 'C', 125]], 'from': 3, 'to': 5}, {'opening': 0, 'rows': [[1, 3, 125], [2, 5, 135], [3, 5, 85]], 'closing': 85}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[4, 1, 'D', 300], [3, 5, 'D', 50], [2, 12, 'D', 300], [5, 5, 'C', 300], [7, 5, 'C', 10], [6, 8, 'C', 125], [8, 1, 'C', 300], [1, 1, 'D', 300]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[1, 1, 300], [4, 1, 600], [8, 1, 300], [3, 5, 350], [5, 5, 50], [7, 5, 40], [6, 8, -85]], 'closing': -85}], ['control 6', {'normal': 'D', 'opening': 0, 'lines': [[3, 12, 'C', 125], [2, 5, 'D', 125], [1, 10, 'D', 50]], 'from': 5, 'to': 7}, {'opening': 0, 'rows': [[2, 5, 125]], 'closing': 125}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[3, 5, 'C', 300], [5, 5, 'C', 50], [4, 5, 'C', 300], [2, 10, 'D', 300], [1, 12, 'D', 300]], 'from': 5, 'to': 5}, {'opening': 250, 'rows': [[3, 5, 550], [4, 5, 850], [5, 5, 900]], 'closing': 900}], ['regression: running balance seed, partial-repair probe', {'normal': 'C', 'opening': 0, 'lines': [[3, 8, 'C', 300], [1, 1, 'C', 10], [2, 12, 'C', 125]], 'from': 3, 'to': 3}, {'opening': 10, 'rows': [], 'closing': 10}], ['control 1', {'normal': 'D', 'opening': 0, 'lines': [[3, 10, 'C', 300], [1, 12, 'C', 125], [2, 12, 'C', 300]], 'from': 6, 'to': 11}, {'opening': 0, 'rows': [[3, 10, -300]], 'closing': -300}], ['control 2', {'normal': 'D', 'opening': 0, 'lines': [[5, 10, 'C', 300], [2, 3, 'C', 300], [1, 3, 'C', 125], [4, 5, 'C', 50], [3, 5, 'C', 300]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[1, 3, -125], [2, 3, -425]], 'closing': -425}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[5, 1, 'C', 300], [2, 8, 'D', 300], [4, 5, 'C', 10], [3, 1, 'D', 10], [7, 5, 'D', 300], [6, 10, 'C', 125], [8, 5, 'D', 300], [1, 5, 'C', 125]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [[3, 1, -10], [5, 1, 290]], 'closing': 290}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[5, 3, 'D', 50], [1, 3, 'C', 50], [6, 1, 'D', 50], [4, 10, 'C', 10], [2, 5, 'C', 50], [7, 10, 'D', 10], [3, 8, 'C', 125]], 'from': 6, 'to': 6}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[1, 5, 'C', 10], [7, 12, 'D', 50], [3, 8, 'D', 300], [5, 5, 'D', 300], [2, 10, 'D', 125], [4, 10, 'C', 50], [6, 12, 'D', 10]], 'from': 5, 'to': 5}, {'opening': 0, 'rows': [[1, 5, -10], [5, 5, 290]], 'closing': 290}]]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'raised ' + type(exc).__name__\n    check(label, actual, expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"b5fb713b89c7222985c4839b8deccb75b7624d94ce0c042db4effdc6e2472149","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sign = {'D': 1, 'C': -1} if x['normal'] == 'D' else {'D': -1, 'C': 1}\n    lines = sorted(x['lines'], key=lambda l: (l[1], l[0]))\n    opening = x['opening'] + sum(sign[s] * a for q, d, s, a in lines if d < x['from'])\n    bal = 0\n    rows = []\n    for seq, date, side, amt in lines:\n        if x['from'] <= date <= x['to']:\n            bal += sign[side] * amt\n            rows.append([seq, date, bal])\n    return {'opening': opening, 'rows': rows, 'closing': bal}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: running balance seed', {'normal': 'C', 'opening': 0, 'lines': [[3, 5, 'C', 50], [6, 1, 'C', 10], [5, 10, 'C', 50], [4, 12, 'D', 300], [8, 5, 'D', 125], [2, 5, 'C', 125], [7, 12, 'D', 125], [1, 12, 'C', 50]], 'from': 6, 'to': 6}, {'opening': 60, 'rows': [], 'closing': 60}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 1, 'D', 10], [3, 12, 'D', 50], [2, 5, 'D', 300]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[1, 1, -10], [2, 5, -310]], 'closing': -310}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[4, 1, 'D', 125], [7, 12, 'C', 50], [6, 10, 'C', 125], [3, 5, 'D', 300], [1, 10, 'C', 50], [2, 5, 'C', 50], [5, 1, 'D', 50]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[4, 1, -125], [5, 1, -175]], 'closing': -175}], ['control 3', {'normal': 'D', 'opening': 0, 'lines': [[5, 5, 'D', 300], [6, 12, 'C', 125], [4, 3, 'D', 300], [8, 5, 'D', 300], [3, 3, 'D', 50], [7, 1, 'C', 300], [2, 5, 'C', 125], [1, 5, 'D', 300]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[7, 1, -300], [3, 3, -250], [4, 3, 50]], 'closing': 50}], ['control 4', {'normal': 'D', 'opening': 0, 'lines': [[1, 10, 'C', 50], [4, 5, 'D', 300], [3, 5, 'D', 300], [2, 3, 'C', 10]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[2, 3, -10], [3, 5, 290], [4, 5, 590]], 'closing': 590}], ['control 5', {'normal': 'C', 'opening': 0, 'lines': [[4, 5, 'C', 50], [1, 5, 'D', 300], [2, 8, 'C', 125], [3, 3, 'C', 50], [5, 3, 'C', 125]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 6', {'normal': 'C', 'opening': 0, 'lines': [[2, 5, 'D', 125], [5, 3, 'C', 125], [6, 12, 'D', 125], [4, 8, 'C', 300], [3, 8, 'C', 10], [1, 3, 'C', 300]], 'from': 3, 'to': 8}, {'opening': 0, 'rows': [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], 'closing': 610}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[4, 8, 'C', 50], [1, 10, 'C', 50], [2, 12, 'D', 125], [6, 10, 'D', 125], [5, 5, 'D', 10], [3, 12, 'D', 50]], 'from': 3, 'to': 8}, {'opening': 250, 'rows': [[5, 5, 240], [4, 8, 290]], 'closing': 290}], ['regression: running balance seed, partial-repair probe', {'normal': 'D', 'opening': 1000, 'lines': [[2, 5, 'C', 300], [3, 3, 'D', 125], [4, 8, 'C', 50], [1, 5, 'C', 125], [5, 3, 'C', 300]], 'from': 5, 'to': 10}, {'opening': 825, 'rows': [[1, 5, 700], [2, 5, 400], [4, 8, 350]], 'closing': 350}], ['control 1', {'normal': 'D', 'opening': 0, 'lines': [[2, 12, 'D', 300], [5, 8, 'C', 50], [6, 12, 'C', 125], [3, 3, 'D', 10], [4, 5, 'C', 10], [1, 5, 'D', 10], [7, 8, 'C', 10]], 'from': 3, 'to': 3}, {'opening': 0, 'rows': [[3, 3, 10]], 'closing': 10}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[6, 8, 'C', 50], [4, 12, 'C', 125], [3, 10, 'D', 300], [1, 10, 'C', 300], [5, 12, 'D', 50], [2, 8, 'C', 50]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[2, 8, 50], [6, 8, 100]], 'closing': 100}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[2, 1, 'C', 50], [3, 1, 'C', 10], [1, 12, 'D', 50]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [[2, 1, 50], [3, 1, 60]], 'closing': 60}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[3, 8, 'C', 125], [1, 5, 'D', 300], [2, 10, 'C', 300]], 'from': 5, 'to': 5}, {'opening': 0, 'rows': [[1, 5, -300]], 'closing': -300}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[1, 5, 'D', 300], [5, 5, 'D', 125], [3, 3, 'D', 50], [4, 12, 'C', 50], [2, 5, 'D', 300], [6, 5, 'D', 125]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[3, 3, 50]], 'closing': 50}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[2, 12, 'C', 50], [1, 8, 'C', 125], [3, 5, 'D', 125]], 'from': 5, 'to': 7}, {'opening': 250, 'rows': [[3, 5, 125]], 'closing': 125}], ['regression: running balance seed, partial-repair probe', {'normal': 'C', 'opening': 0, 'lines': [[3, 1, 'D', 10], [2, 5, 'D', 125], [1, 1, 'D', 10], [5, 5, 'D', 300], [4, 3, 'C', 125]], 'from': 3, 'to': 8}, {'opening': -20, 'rows': [[4, 3, 105], [2, 5, -20], [5, 5, -320]], 'closing': -320}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 8, 'D', 125], [3, 10, 'C', 300], [2, 3, 'C', 300]], 'from': 3, 'to': 5}, {'opening': 0, 'rows': [[2, 3, 300]], 'closing': 300}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[3, 3, 'D', 300], [2, 8, 'C', 300], [1, 5, 'C', 50]], 'from': 3, 'to': 10}, {'opening': 0, 'rows': [[3, 3, -300], [1, 5, -250], [2, 8, 50]], 'closing': 50}], ['control 3', {'normal': 'D', 'opening': 0, 'lines': [[4, 8, 'D', 50], [1, 10, 'C', 50], [5, 3, 'C', 300], [2, 8, 'D', 10], [3, 10, 'C', 300], [6, 8, 'D', 125]], 'from': 3, 'to': 8}, {'opening': 0, 'rows': [[5, 3, -300], [2, 8, -290], [4, 8, -240], [6, 8, -115]], 'closing': -115}], ['control 4', {'normal': 'D', 'opening': 0, 'lines': [[2, 3, 'D', 50], [3, 12, 'D', 300], [1, 3, 'C', 50]], 'from': 6, 'to': 11}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[2, 3, 'C', 300], [1, 5, 'D', 10], [3, 5, 'D', 125]], 'from': 1, 'to': 6}, {'opening': 0, 'rows': [[2, 3, -300], [1, 5, -290], [3, 5, -165]], 'closing': -165}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[2, 3, 'D', 10], [3, 5, 'D', 50], [4, 8, 'D', 10], [1, 5, 'D', 300]], 'from': 6, 'to': 6}, {'opening': -110, 'rows': [], 'closing': -110}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 5, 'D', 300], [4, 8, 'C', 300], [3, 12, 'C', 50], [2, 10, 'C', 125]], 'from': 1, 'to': 6}, {'opening': 0, 'rows': [[1, 5, -300]], 'closing': -300}], ['control 2', {'normal': 'D', 'opening': 0, 'lines': [[1, 8, 'D', 50], [2, 12, 'C', 50], [4, 1, 'D', 50], [5, 1, 'C', 50], [3, 10, 'D', 125]], 'from': 6, 'to': 8}, {'opening': 0, 'rows': [[1, 8, 50]], 'closing': 50}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[3, 5, 'C', 300], [1, 12, 'D', 125], [2, 8, 'C', 300]], 'from': 5, 'to': 10}, {'opening': 0, 'rows': [[3, 5, 300], [2, 8, 600]], 'closing': 600}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[2, 5, 'C', 10], [3, 5, 'D', 50], [1, 3, 'C', 125]], 'from': 3, 'to': 5}, {'opening': 0, 'rows': [[1, 3, 125], [2, 5, 135], [3, 5, 85]], 'closing': 85}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[4, 1, 'D', 300], [3, 5, 'D', 50], [2, 12, 'D', 300], [5, 5, 'C', 300], [7, 5, 'C', 10], [6, 8, 'C', 125], [8, 1, 'C', 300], [1, 1, 'D', 300]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[1, 1, 300], [4, 1, 600], [8, 1, 300], [3, 5, 350], [5, 5, 50], [7, 5, 40], [6, 8, -85]], 'closing': -85}], ['control 6', {'normal': 'D', 'opening': 0, 'lines': [[3, 12, 'C', 125], [2, 5, 'D', 125], [1, 10, 'D', 50]], 'from': 5, 'to': 7}, {'opening': 0, 'rows': [[2, 5, 125]], 'closing': 125}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[3, 5, 'C', 300], [5, 5, 'C', 50], [4, 5, 'C', 300], [2, 10, 'D', 300], [1, 12, 'D', 300]], 'from': 5, 'to': 5}, {'opening': 250, 'rows': [[3, 5, 550], [4, 5, 850], [5, 5, 900]], 'closing': 900}], ['regression: running balance seed, partial-repair probe', {'normal': 'C', 'opening': 0, 'lines': [[3, 8, 'C', 300], [1, 1, 'C', 10], [2, 12, 'C', 125]], 'from': 3, 'to': 3}, {'opening': 10, 'rows': [], 'closing': 10}], ['control 1', {'normal': 'D', 'opening': 0, 'lines': [[3, 10, 'C', 300], [1, 12, 'C', 125], [2, 12, 'C', 300]], 'from': 6, 'to': 11}, {'opening': 0, 'rows': [[3, 10, -300]], 'closing': -300}], ['control 2', {'normal': 'D', 'opening': 0, 'lines': [[5, 10, 'C', 300], [2, 3, 'C', 300], [1, 3, 'C', 125], [4, 5, 'C', 50], [3, 5, 'C', 300]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[1, 3, -125], [2, 3, -425]], 'closing': -425}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[5, 1, 'C', 300], [2, 8, 'D', 300], [4, 5, 'C', 10], [3, 1, 'D', 10], [7, 5, 'D', 300], [6, 10, 'C', 125], [8, 5, 'D', 300], [1, 5, 'C', 125]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [[3, 1, -10], [5, 1, 290]], 'closing': 290}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[5, 3, 'D', 50], [1, 3, 'C', 50], [6, 1, 'D', 50], [4, 10, 'C', 10], [2, 5, 'C', 50], [7, 10, 'D', 10], [3, 8, 'C', 125]], 'from': 6, 'to': 6}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[1, 5, 'C', 10], [7, 12, 'D', 50], [3, 8, 'D', 300], [5, 5, 'D', 300], [2, 10, 'D', 125], [4, 10, 'C', 50], [6, 12, 'D', 10]], 'from': 5, 'to': 5}, {'opening': 0, 'rows': [[1, 5, -10], [5, 5, 290]], 'closing': 290}]]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'raised ' + type(exc).__name__\n    check(label, actual, expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"450f463a86fc45e277a8225dc83dd3f8114225ec60334eb67accbaa129f34b9a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    sign = {'D': 1, 'C': -1} if x['normal'] == 'D' else {'D': -1, 'C': 1}\n    lines = sorted(x['lines'], key=lambda l: (l[1], l[0]))\n    opening = x['opening'] + sum(sign[s] * a for q, d, s, a in lines if d < x['from'])\n    bal = opening\n    rows = []\n    for seq, date, side, amt in lines:\n        if x['from'] <= date <= x['to']:\n            bal += sign[side] * amt\n            rows.append([seq, date, bal])\n    return {'opening': opening, 'rows': rows, 'closing': bal}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: running balance seed', {'normal': 'C', 'opening': 0, 'lines': [[3, 5, 'C', 50], [6, 1, 'C', 10], [5, 10, 'C', 50], [4, 12, 'D', 300], [8, 5, 'D', 125], [2, 5, 'C', 125], [7, 12, 'D', 125], [1, 12, 'C', 50]], 'from': 6, 'to': 6}, {'opening': 60, 'rows': [], 'closing': 60}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 1, 'D', 10], [3, 12, 'D', 50], [2, 5, 'D', 300]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[1, 1, -10], [2, 5, -310]], 'closing': -310}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[4, 1, 'D', 125], [7, 12, 'C', 50], [6, 10, 'C', 125], [3, 5, 'D', 300], [1, 10, 'C', 50], [2, 5, 'C', 50], [5, 1, 'D', 50]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[4, 1, -125], [5, 1, -175]], 'closing': -175}], ['control 3', {'normal': 'D', 'opening': 0, 'lines': [[5, 5, 'D', 300], [6, 12, 'C', 125], [4, 3, 'D', 300], [8, 5, 'D', 300], [3, 3, 'D', 50], [7, 1, 'C', 300], [2, 5, 'C', 125], [1, 5, 'D', 300]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[7, 1, -300], [3, 3, -250], [4, 3, 50]], 'closing': 50}], ['control 4', {'normal': 'D', 'opening': 0, 'lines': [[1, 10, 'C', 50], [4, 5, 'D', 300], [3, 5, 'D', 300], [2, 3, 'C', 10]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[2, 3, -10], [3, 5, 290], [4, 5, 590]], 'closing': 590}], ['control 5', {'normal': 'C', 'opening': 0, 'lines': [[4, 5, 'C', 50], [1, 5, 'D', 300], [2, 8, 'C', 125], [3, 3, 'C', 50], [5, 3, 'C', 125]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 6', {'normal': 'C', 'opening': 0, 'lines': [[2, 5, 'D', 125], [5, 3, 'C', 125], [6, 12, 'D', 125], [4, 8, 'C', 300], [3, 8, 'C', 10], [1, 3, 'C', 300]], 'from': 3, 'to': 8}, {'opening': 0, 'rows': [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], 'closing': 610}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[4, 8, 'C', 50], [1, 10, 'C', 50], [2, 12, 'D', 125], [6, 10, 'D', 125], [5, 5, 'D', 10], [3, 12, 'D', 50]], 'from': 3, 'to': 8}, {'opening': 250, 'rows': [[5, 5, 240], [4, 8, 290]], 'closing': 290}], ['regression: running balance seed, partial-repair probe', {'normal': 'D', 'opening': 1000, 'lines': [[2, 5, 'C', 300], [3, 3, 'D', 125], [4, 8, 'C', 50], [1, 5, 'C', 125], [5, 3, 'C', 300]], 'from': 5, 'to': 10}, {'opening': 825, 'rows': [[1, 5, 700], [2, 5, 400], [4, 8, 350]], 'closing': 350}], ['control 1', {'normal': 'D', 'opening': 0, 'lines': [[2, 12, 'D', 300], [5, 8, 'C', 50], [6, 12, 'C', 125], [3, 3, 'D', 10], [4, 5, 'C', 10], [1, 5, 'D', 10], [7, 8, 'C', 10]], 'from': 3, 'to': 3}, {'opening': 0, 'rows': [[3, 3, 10]], 'closing': 10}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[6, 8, 'C', 50], [4, 12, 'C', 125], [3, 10, 'D', 300], [1, 10, 'C', 300], [5, 12, 'D', 50], [2, 8, 'C', 50]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[2, 8, 50], [6, 8, 100]], 'closing': 100}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[2, 1, 'C', 50], [3, 1, 'C', 10], [1, 12, 'D', 50]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [[2, 1, 50], [3, 1, 60]], 'closing': 60}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[3, 8, 'C', 125], [1, 5, 'D', 300], [2, 10, 'C', 300]], 'from': 5, 'to': 5}, {'opening': 0, 'rows': [[1, 5, -300]], 'closing': -300}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[1, 5, 'D', 300], [5, 5, 'D', 125], [3, 3, 'D', 50], [4, 12, 'C', 50], [2, 5, 'D', 300], [6, 5, 'D', 125]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[3, 3, 50]], 'closing': 50}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[2, 12, 'C', 50], [1, 8, 'C', 125], [3, 5, 'D', 125]], 'from': 5, 'to': 7}, {'opening': 250, 'rows': [[3, 5, 125]], 'closing': 125}], ['regression: running balance seed, partial-repair probe', {'normal': 'C', 'opening': 0, 'lines': [[3, 1, 'D', 10], [2, 5, 'D', 125], [1, 1, 'D', 10], [5, 5, 'D', 300], [4, 3, 'C', 125]], 'from': 3, 'to': 8}, {'opening': -20, 'rows': [[4, 3, 105], [2, 5, -20], [5, 5, -320]], 'closing': -320}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 8, 'D', 125], [3, 10, 'C', 300], [2, 3, 'C', 300]], 'from': 3, 'to': 5}, {'opening': 0, 'rows': [[2, 3, 300]], 'closing': 300}], ['control 2', {'normal': 'C', 'opening': 0, 'lines': [[3, 3, 'D', 300], [2, 8, 'C', 300], [1, 5, 'C', 50]], 'from': 3, 'to': 10}, {'opening': 0, 'rows': [[3, 3, -300], [1, 5, -250], [2, 8, 50]], 'closing': 50}], ['control 3', {'normal': 'D', 'opening': 0, 'lines': [[4, 8, 'D', 50], [1, 10, 'C', 50], [5, 3, 'C', 300], [2, 8, 'D', 10], [3, 10, 'C', 300], [6, 8, 'D', 125]], 'from': 3, 'to': 8}, {'opening': 0, 'rows': [[5, 3, -300], [2, 8, -290], [4, 8, -240], [6, 8, -115]], 'closing': -115}], ['control 4', {'normal': 'D', 'opening': 0, 'lines': [[2, 3, 'D', 50], [3, 12, 'D', 300], [1, 3, 'C', 50]], 'from': 6, 'to': 11}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[2, 3, 'C', 300], [1, 5, 'D', 10], [3, 5, 'D', 125]], 'from': 1, 'to': 6}, {'opening': 0, 'rows': [[2, 3, -300], [1, 5, -290], [3, 5, -165]], 'closing': -165}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[2, 3, 'D', 10], [3, 5, 'D', 50], [4, 8, 'D', 10], [1, 5, 'D', 300]], 'from': 6, 'to': 6}, {'opening': -110, 'rows': [], 'closing': -110}], ['control 1', {'normal': 'C', 'opening': 0, 'lines': [[1, 5, 'D', 300], [4, 8, 'C', 300], [3, 12, 'C', 50], [2, 10, 'C', 125]], 'from': 1, 'to': 6}, {'opening': 0, 'rows': [[1, 5, -300]], 'closing': -300}], ['control 2', {'normal': 'D', 'opening': 0, 'lines': [[1, 8, 'D', 50], [2, 12, 'C', 50], [4, 1, 'D', 50], [5, 1, 'C', 50], [3, 10, 'D', 125]], 'from': 6, 'to': 8}, {'opening': 0, 'rows': [[1, 8, 50]], 'closing': 50}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[3, 5, 'C', 300], [1, 12, 'D', 125], [2, 8, 'C', 300]], 'from': 5, 'to': 10}, {'opening': 0, 'rows': [[3, 5, 300], [2, 8, 600]], 'closing': 600}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[2, 5, 'C', 10], [3, 5, 'D', 50], [1, 3, 'C', 125]], 'from': 3, 'to': 5}, {'opening': 0, 'rows': [[1, 3, 125], [2, 5, 135], [3, 5, 85]], 'closing': 85}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[4, 1, 'D', 300], [3, 5, 'D', 50], [2, 12, 'D', 300], [5, 5, 'C', 300], [7, 5, 'C', 10], [6, 8, 'C', 125], [8, 1, 'C', 300], [1, 1, 'D', 300]], 'from': 1, 'to': 8}, {'opening': 0, 'rows': [[1, 1, 300], [4, 1, 600], [8, 1, 300], [3, 5, 350], [5, 5, 50], [7, 5, 40], [6, 8, -85]], 'closing': -85}], ['control 6', {'normal': 'D', 'opening': 0, 'lines': [[3, 12, 'C', 125], [2, 5, 'D', 125], [1, 10, 'D', 50]], 'from': 5, 'to': 7}, {'opening': 0, 'rows': [[2, 5, 125]], 'closing': 125}]], [['regression: running balance seed', {'normal': 'C', 'opening': 250, 'lines': [[3, 5, 'C', 300], [5, 5, 'C', 50], [4, 5, 'C', 300], [2, 10, 'D', 300], [1, 12, 'D', 300]], 'from': 5, 'to': 5}, {'opening': 250, 'rows': [[3, 5, 550], [4, 5, 850], [5, 5, 900]], 'closing': 900}], ['regression: running balance seed, partial-repair probe', {'normal': 'C', 'opening': 0, 'lines': [[3, 8, 'C', 300], [1, 1, 'C', 10], [2, 12, 'C', 125]], 'from': 3, 'to': 3}, {'opening': 10, 'rows': [], 'closing': 10}], ['control 1', {'normal': 'D', 'opening': 0, 'lines': [[3, 10, 'C', 300], [1, 12, 'C', 125], [2, 12, 'C', 300]], 'from': 6, 'to': 11}, {'opening': 0, 'rows': [[3, 10, -300]], 'closing': -300}], ['control 2', {'normal': 'D', 'opening': 0, 'lines': [[5, 10, 'C', 300], [2, 3, 'C', 300], [1, 3, 'C', 125], [4, 5, 'C', 50], [3, 5, 'C', 300]], 'from': 1, 'to': 3}, {'opening': 0, 'rows': [[1, 3, -125], [2, 3, -425]], 'closing': -425}], ['control 3', {'normal': 'C', 'opening': 0, 'lines': [[5, 1, 'C', 300], [2, 8, 'D', 300], [4, 5, 'C', 10], [3, 1, 'D', 10], [7, 5, 'D', 300], [6, 10, 'C', 125], [8, 5, 'D', 300], [1, 5, 'C', 125]], 'from': 1, 'to': 1}, {'opening': 0, 'rows': [[3, 1, -10], [5, 1, 290]], 'closing': 290}], ['control 4', {'normal': 'C', 'opening': 0, 'lines': [[5, 3, 'D', 50], [1, 3, 'C', 50], [6, 1, 'D', 50], [4, 10, 'C', 10], [2, 5, 'C', 50], [7, 10, 'D', 10], [3, 8, 'C', 125]], 'from': 6, 'to': 6}, {'opening': 0, 'rows': [], 'closing': 0}], ['control 5', {'normal': 'D', 'opening': 0, 'lines': [[1, 5, 'C', 10], [7, 12, 'D', 50], [3, 8, 'D', 300], [5, 5, 'D', 300], [2, 10, 'D', 125], [4, 10, 'C', 50], [6, 12, 'D', 10]], 'from': 5, 'to': 5}, {'opening': 0, 'rows': [[1, 5, -10], [5, 5, 290]], 'closing': 290}]]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'raised ' + type(exc).__name__\n    check(label, actual, expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-double-entry-ledger-accounting-account-running-balance-running-balance-seed","generated_at":"2026-09-29T14:46:23.356207+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"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.","repair":"Start the running balance at the computed report opening.","root_cause":"The running balance is not seeded with the report opening.","sha256":"48ab71ca1e3de9a08bb3681a50d662f01e9c9d77ae8bbebb81fa39780e83e17c","title":"Account running balance report: running balance seed · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.504,"exit_code":1,"observations":[{"actual":{"closing":0,"opening":60,"rows":[]},"check":"regression: running balance seed","expected":{"closing":60,"opening":60,"rows":[]},"passed":false},{"actual":{"closing":-310,"opening":0,"rows":[[1,1,-10],[2,5,-310]]},"check":"control 1","expected":{"closing":-310,"opening":0,"rows":[[1,1,-10],[2,5,-310]]},"passed":true},{"actual":{"closing":-175,"opening":0,"rows":[[4,1,-125],[5,1,-175]]},"check":"control 2","expected":{"closing":-175,"opening":0,"rows":[[4,1,-125],[5,1,-175]]},"passed":true},{"actual":{"closing":50,"opening":0,"rows":[[7,1,-300],[3,3,-250],[4,3,50]]},"check":"control 3","expected":{"closing":50,"opening":0,"rows":[[7,1,-300],[3,3,-250],[4,3,50]]},"passed":true},{"actual":{"closing":590,"opening":0,"rows":[[2,3,-10],[3,5,290],[4,5,590]]},"check":"control 4","expected":{"closing":590,"opening":0,"rows":[[2,3,-10],[3,5,290],[4,5,590]]},"passed":true},{"actual":{"closing":0,"opening":0,"rows":[]},"check":"control 5","expected":{"closing":0,"opening":0,"rows":[]},"passed":true},{"actual":{"closing":610,"opening":0,"rows":[[1,3,300],[5,3,425],[2,5,300],[3,8,310],[4,8,610]]},"check":"control 6","expected":{"closing":610,"opening":0,"rows":[[1,3,300],[5,3,425],[2,5,300],[3,8,310],[4,8,610]]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: running balance seed\", \"actual\": {\"opening\": 60, \"rows\": [], \"closing\": 0}, \"expected\": {\"opening\": 60, \"rows\": [], \"closing\": 60}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"opening\": 0, \"rows\": [[1, 1, -10], [2, 5, -310]], \"closing\": -310}, \"expected\": {\"opening\": 0, \"rows\": [[1, 1, -10], [2, 5, -310]], \"closing\": -310}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"opening\": 0, \"rows\": [[4, 1, -125], [5, 1, -175]], \"closing\": -175}, \"expected\": {\"opening\": 0, \"rows\": [[4, 1, -125], [5, 1, -175]], \"closing\": -175}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"opening\": 0, \"rows\": [[7, 1, -300], [3, 3, -250], [4, 3, 50]], \"closing\": 50}, \"expected\": {\"opening\": 0, \"rows\": [[7, 1, -300], [3, 3, -250], [4, 3, 50]], \"closing\": 50}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"opening\": 0, \"rows\": [[2, 3, -10], [3, 5, 290], [4, 5, 590]], \"closing\": 590}, \"expected\": {\"opening\": 0, \"rows\": [[2, 3, -10], [3, 5, 290], [4, 5, 590]], \"closing\": 590}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"opening\": 0, \"rows\": [], \"closing\": 0}, \"expected\": {\"opening\": 0, \"rows\": [], \"closing\": 0}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"opening\": 0, \"rows\": [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], \"closing\": 610}, \"expected\": {\"opening\": 0, \"rows\": [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], \"closing\": 610}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.488,"exit_code":1,"observations":[{"actual":{"closing":0,"opening":60,"rows":[]},"check":"regression: running balance seed","expected":{"closing":60,"opening":60,"rows":[]},"passed":false},{"actual":{"closing":-310,"opening":0,"rows":[[1,1,-10],[2,5,-310]]},"check":"control 1","expected":{"closing":-310,"opening":0,"rows":[[1,1,-10],[2,5,-310]]},"passed":true},{"actual":{"closing":-175,"opening":0,"rows":[[4,1,-125],[5,1,-175]]},"check":"control 2","expected":{"closing":-175,"opening":0,"rows":[[4,1,-125],[5,1,-175]]},"passed":true},{"actual":{"closing":50,"opening":0,"rows":[[7,1,-300],[3,3,-250],[4,3,50]]},"check":"control 3","expected":{"closing":50,"opening":0,"rows":[[7,1,-300],[3,3,-250],[4,3,50]]},"passed":true},{"actual":{"closing":590,"opening":0,"rows":[[2,3,-10],[3,5,290],[4,5,590]]},"check":"control 4","expected":{"closing":590,"opening":0,"rows":[[2,3,-10],[3,5,290],[4,5,590]]},"passed":true},{"actual":{"closing":0,"opening":0,"rows":[]},"check":"control 5","expected":{"closing":0,"opening":0,"rows":[]},"passed":true},{"actual":{"closing":610,"opening":0,"rows":[[1,3,300],[5,3,425],[2,5,300],[3,8,310],[4,8,610]]},"check":"control 6","expected":{"closing":610,"opening":0,"rows":[[1,3,300],[5,3,425],[2,5,300],[3,8,310],[4,8,610]]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: running balance seed\", \"actual\": {\"opening\": 60, \"rows\": [], \"closing\": 0}, \"expected\": {\"opening\": 60, \"rows\": [], \"closing\": 60}, \"passed\": false}, {\"check\": \"control 1\", \"actual\": {\"opening\": 0, \"rows\": [[1, 1, -10], [2, 5, -310]], \"closing\": -310}, \"expected\": {\"opening\": 0, \"rows\": [[1, 1, -10], [2, 5, -310]], \"closing\": -310}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"opening\": 0, \"rows\": [[4, 1, -125], [5, 1, -175]], \"closing\": -175}, \"expected\": {\"opening\": 0, \"rows\": [[4, 1, -125], [5, 1, -175]], \"closing\": -175}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"opening\": 0, \"rows\": [[7, 1, -300], [3, 3, -250], [4, 3, 50]], \"closing\": 50}, \"expected\": {\"opening\": 0, \"rows\": [[7, 1, -300], [3, 3, -250], [4, 3, 50]], \"closing\": 50}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"opening\": 0, \"rows\": [[2, 3, -10], [3, 5, 290], [4, 5, 590]], \"closing\": 590}, \"expected\": {\"opening\": 0, \"rows\": [[2, 3, -10], [3, 5, 290], [4, 5, 590]], \"closing\": 590}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"opening\": 0, \"rows\": [], \"closing\": 0}, \"expected\": {\"opening\": 0, \"rows\": [], \"closing\": 0}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"opening\": 0, \"rows\": [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], \"closing\": 610}, \"expected\": {\"opening\": 0, \"rows\": [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], \"closing\": 610}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.224,"exit_code":0,"observations":[{"actual":{"closing":60,"opening":60,"rows":[]},"check":"regression: running balance seed","expected":{"closing":60,"opening":60,"rows":[]},"passed":true},{"actual":{"closing":-310,"opening":0,"rows":[[1,1,-10],[2,5,-310]]},"check":"control 1","expected":{"closing":-310,"opening":0,"rows":[[1,1,-10],[2,5,-310]]},"passed":true},{"actual":{"closing":-175,"opening":0,"rows":[[4,1,-125],[5,1,-175]]},"check":"control 2","expected":{"closing":-175,"opening":0,"rows":[[4,1,-125],[5,1,-175]]},"passed":true},{"actual":{"closing":50,"opening":0,"rows":[[7,1,-300],[3,3,-250],[4,3,50]]},"check":"control 3","expected":{"closing":50,"opening":0,"rows":[[7,1,-300],[3,3,-250],[4,3,50]]},"passed":true},{"actual":{"closing":590,"opening":0,"rows":[[2,3,-10],[3,5,290],[4,5,590]]},"check":"control 4","expected":{"closing":590,"opening":0,"rows":[[2,3,-10],[3,5,290],[4,5,590]]},"passed":true},{"actual":{"closing":0,"opening":0,"rows":[]},"check":"control 5","expected":{"closing":0,"opening":0,"rows":[]},"passed":true},{"actual":{"closing":610,"opening":0,"rows":[[1,3,300],[5,3,425],[2,5,300],[3,8,310],[4,8,610]]},"check":"control 6","expected":{"closing":610,"opening":0,"rows":[[1,3,300],[5,3,425],[2,5,300],[3,8,310],[4,8,610]]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: running balance seed\", \"actual\": {\"opening\": 60, \"rows\": [], \"closing\": 60}, \"expected\": {\"opening\": 60, \"rows\": [], \"closing\": 60}, \"passed\": true}, {\"check\": \"control 1\", \"actual\": {\"opening\": 0, \"rows\": [[1, 1, -10], [2, 5, -310]], \"closing\": -310}, \"expected\": {\"opening\": 0, \"rows\": [[1, 1, -10], [2, 5, -310]], \"closing\": -310}, \"passed\": true}, {\"check\": \"control 2\", \"actual\": {\"opening\": 0, \"rows\": [[4, 1, -125], [5, 1, -175]], \"closing\": -175}, \"expected\": {\"opening\": 0, \"rows\": [[4, 1, -125], [5, 1, -175]], \"closing\": -175}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"opening\": 0, \"rows\": [[7, 1, -300], [3, 3, -250], [4, 3, 50]], \"closing\": 50}, \"expected\": {\"opening\": 0, \"rows\": [[7, 1, -300], [3, 3, -250], [4, 3, 50]], \"closing\": 50}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"opening\": 0, \"rows\": [[2, 3, -10], [3, 5, 290], [4, 5, 590]], \"closing\": 590}, \"expected\": {\"opening\": 0, \"rows\": [[2, 3, -10], [3, 5, 290], [4, 5, 590]], \"closing\": 590}, \"passed\": true}, {\"check\": \"control 5\", \"actual\": {\"opening\": 0, \"rows\": [], \"closing\": 0}, \"expected\": {\"opening\": 0, \"rows\": [], \"closing\": 0}, \"passed\": true}, {\"check\": \"control 6\", \"actual\": {\"opening\": 0, \"rows\": [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], \"closing\": 610}, \"expected\": {\"opening\": 0, \"rows\": [[1, 3, 300], [5, 3, 425], [2, 5, 300], [3, 8, 310], [4, 8, 610]], \"closing\": 610}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}