{"abstract":"Ending inventory plus COGS no longer equals goods available by a cent.","category":"Inventory cost layering","checks":8,"contract":"Input {begin:[qty,value], purchases:[[qty,value]], vendor_returns:[[purchase_index,qty]], ending_qty}. Each vendor return removes qty units and floor(value*qty/purchase_qty) value of that purchase. The pool is beginning plus purchases less returns; ending value = round-half-up(ending_qty*pool value/pool units); COGS = pool value - ending value. ending_qty outside [0, pool units] returns {\"error\"}. Return {units, pool, ending_value, cogs}.","contract_signature":"x","evaluation_group":"w2-inventory-cost-layering-periodic-weighted-average","failed_approach":"Truncating the independently computed COGS changes which cent is lost but still breaks the identity.","family":"w2-inventory-cost-layering-periodic-weighted-average-cogs-rounding-leak","id":"FA-60306","implementations":{"attempt":{"sha256":"e2d8e238d27de4f9e964bb2feba3a863bc6e50900d40317ddfec045997e81c52","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    units = x['begin'][0] + sum(q for q, v in x['purchases'])\n    pool = x['begin'][1] + sum(v for q, v in x['purchases'])\n    for i, rq in x['vendor_returns']:\n        pq, pv = x['purchases'][i]\n        pool -= pv * rq // pq\n        units -= rq\n    e = x['ending_qty']\n    if e < 0 or e > units:\n        return {'error': 'invalid count'}\n    ending = (2 * e * pool + units) // (2 * units) if units else 0\n    return {'units': units, 'pool': pool, 'ending_value': ending, 'cogs': (units - e) * pool // units if units else pool}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1501]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4451, 'ending_value': 1526, 'cogs': 2925}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 781]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1261, 'ending_value': 378, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1410]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2501], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3001, 'ending_value': 1200, 'cogs': 1801}], ['half cent both ways', {'begin': [1, 1], 'purchases': [[1, 2]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 3, 'ending_value': 2, 'cogs': 1}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1502]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4452, 'ending_value': 1526, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 782]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1262, 'ending_value': 379, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1411]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2502], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3002, 'ending_value': 1201, 'cogs': 1801}], ['half cent both ways', {'begin': [1, 2], 'purchases': [[1, 3]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 5, 'ending_value': 3, 'cogs': 2}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1503]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4453, 'ending_value': 1527, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 783]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1263, 'ending_value': 379, 'cogs': 884}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1412]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1825, 'ending_value': 1027, 'cogs': 798}], ['pricey begin', {'begin': [5, 2503], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3003, 'ending_value': 1201, 'cogs': 1802}], ['half cent both ways', {'begin': [1, 3], 'purchases': [[1, 4]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 7, 'ending_value': 4, 'cogs': 3}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1504]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4454, 'ending_value': 1527, 'cogs': 2927}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 784]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1264, 'ending_value': 379, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1413]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2504], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3004, 'ending_value': 1202, 'cogs': 1802}], ['half cent both ways', {'begin': [1, 4], 'purchases': [[1, 5]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 9, 'ending_value': 5, 'cogs': 4}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1505]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4455, 'ending_value': 1527, 'cogs': 2928}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 785]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1265, 'ending_value': 380, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1414]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2505], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3005, 'ending_value': 1202, 'cogs': 1803}], ['half cent both ways', {'begin': [1, 5], 'purchases': [[1, 6]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 11, 'ending_value': 6, 'cogs': 5}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), 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":"14946f55e5852e01d86e4de858c018a6bc031e4c92c66e028a5edad544491b21","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    units = x['begin'][0] + sum(q for q, v in x['purchases'])\n    pool = x['begin'][1] + sum(v for q, v in x['purchases'])\n    for i, rq in x['vendor_returns']:\n        pq, pv = x['purchases'][i]\n        pool -= pv * rq // pq\n        units -= rq\n    e = x['ending_qty']\n    if e < 0 or e > units:\n        return {'error': 'invalid count'}\n    ending = (2 * e * pool + units) // (2 * units) if units else 0\n    return {'units': units, 'pool': pool, 'ending_value': ending, 'cogs': (2 * (units - e) * pool + units) // (2 * units) if units else pool}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1501]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4451, 'ending_value': 1526, 'cogs': 2925}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 781]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1261, 'ending_value': 378, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1410]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2501], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3001, 'ending_value': 1200, 'cogs': 1801}], ['half cent both ways', {'begin': [1, 1], 'purchases': [[1, 2]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 3, 'ending_value': 2, 'cogs': 1}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1502]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4452, 'ending_value': 1526, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 782]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1262, 'ending_value': 379, 'cogs': 883}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1411]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1824, 'ending_value': 1026, 'cogs': 798}], ['pricey begin', {'begin': [5, 2502], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3002, 'ending_value': 1201, 'cogs': 1801}], ['half cent both ways', {'begin': [1, 2], 'purchases': [[1, 3]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 5, 'ending_value': 3, 'cogs': 2}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1503]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4453, 'ending_value': 1527, 'cogs': 2926}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 783]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1263, 'ending_value': 379, 'cogs': 884}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1412]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1825, 'ending_value': 1027, 'cogs': 798}], ['pricey begin', {'begin': [5, 2503], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3003, 'ending_value': 1201, 'cogs': 1802}], ['half cent both ways', {'begin': [1, 3], 'purchases': [[1, 4]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 7, 'ending_value': 4, 'cogs': 3}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1504]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4454, 'ending_value': 1527, 'cogs': 2927}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 784]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1264, 'ending_value': 379, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 2]], 'ending_qty': 5}, {'units': 8, 'pool': 655, 'ending_value': 409, 'cogs': 246}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 6}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1413]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2504], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3004, 'ending_value': 1202, 'cogs': 1802}], ['half cent both ways', {'begin': [1, 4], 'purchases': [[1, 5]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 9, 'ending_value': 5, 'cogs': 4}]], [['basic', {'begin': [10, 1000], 'purchases': [[20, 2600], [10, 1505]], 'vendor_returns': [[0, 5]], 'ending_qty': 12}, {'units': 35, 'pool': 4455, 'ending_value': 1527, 'cogs': 2928}], ['no returns', {'begin': [4, 480], 'purchases': [[6, 785]], 'vendor_returns': [], 'ending_qty': 3}, {'units': 10, 'pool': 1265, 'ending_value': 380, 'cogs': 885}], ['return second', {'begin': [0, 0], 'purchases': [[3, 100], [7, 777]], 'vendor_returns': [[1, 3]], 'ending_qty': 5}, {'units': 7, 'pool': 544, 'ending_value': 389, 'cogs': 155}], ['too many counted', {'begin': [2, 200], 'purchases': [[5, 600]], 'vendor_returns': [[0, 2]], 'ending_qty': 7}, {'error': 'invalid count'}], ['empty count', {'begin': [3, 330], 'purchases': [[3, 390]], 'vendor_returns': [[0, 1]], 'ending_qty': 0}, {'units': 5, 'pool': 590, 'ending_value': 0, 'cogs': 590}], ['odd costs', {'begin': [7, 701], 'purchases': [[3, 337], [11, 1414]], 'vendor_returns': [[1, 4], [0, 1]], 'ending_qty': 9}, {'units': 16, 'pool': 1826, 'ending_value': 1027, 'cogs': 799}], ['pricey begin', {'begin': [5, 2505], 'purchases': [[5, 500]], 'vendor_returns': [], 'ending_qty': 4}, {'units': 10, 'pool': 3005, 'ending_value': 1202, 'cogs': 1803}], ['half cent both ways', {'begin': [1, 5], 'purchases': [[1, 6]], 'vendor_returns': [], 'ending_qty': 1}, {'units': 2, 'pool': 11, 'ending_value': 6, 'cogs': 5}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), 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":"Stipulated bounded teaching model with explicit toy rules; not an accounting-standard implementation. 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-inventory-cost-layering-periodic-weighted-average-cogs-rounding-leak","generated_at":"2026-09-29T14:46:44.374136+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Inventory valuation and cost-of-goods decisions depend on this rule.","root_cause":"COGS is rounded independently from sold units instead of being derived as pool minus ending value.","sha256":"6fdb6c050a8325d87ddf9912494d59728716eb399faf2c0f058561d2f475e298","title":"Periodic weighted average with vendor returns: COGS rounding leak · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":41.676,"exit_code":1,"observations":[{"actual":{"cogs":2924,"ending_value":1526,"pool":4451,"units":35},"check":"basic","expected":{"cogs":2925,"ending_value":1526,"pool":4451,"units":35},"passed":false},{"actual":{"cogs":882,"ending_value":378,"pool":1261,"units":10},"check":"no returns","expected":{"cogs":883,"ending_value":378,"pool":1261,"units":10},"passed":false},{"actual":{"cogs":155,"ending_value":389,"pool":544,"units":7},"check":"return second","expected":{"cogs":155,"ending_value":389,"pool":544,"units":7},"passed":true},{"actual":{"error":"invalid count"},"check":"too many counted","expected":{"error":"invalid count"},"passed":true},{"actual":{"cogs":590,"ending_value":0,"pool":590,"units":5},"check":"empty count","expected":{"cogs":590,"ending_value":0,"pool":590,"units":5},"passed":true},{"actual":{"cogs":798,"ending_value":1026,"pool":1824,"units":16},"check":"odd costs","expected":{"cogs":798,"ending_value":1026,"pool":1824,"units":16},"passed":true},{"actual":{"cogs":1800,"ending_value":1200,"pool":3001,"units":10},"check":"pricey begin","expected":{"cogs":1801,"ending_value":1200,"pool":3001,"units":10},"passed":false},{"actual":{"cogs":1,"ending_value":2,"pool":3,"units":2},"check":"half cent both ways","expected":{"cogs":1,"ending_value":2,"pool":3,"units":2},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"basic\", \"actual\": {\"units\": 35, \"pool\": 4451, \"ending_value\": 1526, \"cogs\": 2924}, \"expected\": {\"units\": 35, \"pool\": 4451, \"ending_value\": 1526, \"cogs\": 2925}, \"passed\": false}, {\"check\": \"no returns\", \"actual\": {\"units\": 10, \"pool\": 1261, \"ending_value\": 378, \"cogs\": 882}, \"expected\": {\"units\": 10, \"pool\": 1261, \"ending_value\": 378, \"cogs\": 883}, \"passed\": false}, {\"check\": \"return second\", \"actual\": {\"units\": 7, \"pool\": 544, \"ending_value\": 389, \"cogs\": 155}, \"expected\": {\"units\": 7, \"pool\": 544, \"ending_value\": 389, \"cogs\": 155}, \"passed\": true}, {\"check\": \"too many counted\", \"actual\": {\"error\": \"invalid count\"}, \"expected\": {\"error\": \"invalid count\"}, \"passed\": true}, {\"check\": \"empty count\", \"actual\": {\"units\": 5, \"pool\": 590, \"ending_value\": 0, \"cogs\": 590}, \"expected\": {\"units\": 5, \"pool\": 590, \"ending_value\": 0, \"cogs\": 590}, \"passed\": true}, {\"check\": \"odd costs\", \"actual\": {\"units\": 16, \"pool\": 1824, \"ending_value\": 1026, \"cogs\": 798}, \"expected\": {\"units\": 16, \"pool\": 1824, \"ending_value\": 1026, \"cogs\": 798}, \"passed\": true}, {\"check\": \"pricey begin\", \"actual\": {\"units\": 10, \"pool\": 3001, \"ending_value\": 1200, \"cogs\": 1800}, \"expected\": {\"units\": 10, \"pool\": 3001, \"ending_value\": 1200, \"cogs\": 1801}, \"passed\": false}, {\"check\": \"half cent both ways\", \"actual\": {\"units\": 2, \"pool\": 3, \"ending_value\": 2, \"cogs\": 1}, \"expected\": {\"units\": 2, \"pool\": 3, \"ending_value\": 2, \"cogs\": 1}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.186,"exit_code":1,"observations":[{"actual":{"cogs":2925,"ending_value":1526,"pool":4451,"units":35},"check":"basic","expected":{"cogs":2925,"ending_value":1526,"pool":4451,"units":35},"passed":true},{"actual":{"cogs":883,"ending_value":378,"pool":1261,"units":10},"check":"no returns","expected":{"cogs":883,"ending_value":378,"pool":1261,"units":10},"passed":true},{"actual":{"cogs":155,"ending_value":389,"pool":544,"units":7},"check":"return second","expected":{"cogs":155,"ending_value":389,"pool":544,"units":7},"passed":true},{"actual":{"error":"invalid count"},"check":"too many counted","expected":{"error":"invalid count"},"passed":true},{"actual":{"cogs":590,"ending_value":0,"pool":590,"units":5},"check":"empty count","expected":{"cogs":590,"ending_value":0,"pool":590,"units":5},"passed":true},{"actual":{"cogs":798,"ending_value":1026,"pool":1824,"units":16},"check":"odd costs","expected":{"cogs":798,"ending_value":1026,"pool":1824,"units":16},"passed":true},{"actual":{"cogs":1801,"ending_value":1200,"pool":3001,"units":10},"check":"pricey begin","expected":{"cogs":1801,"ending_value":1200,"pool":3001,"units":10},"passed":true},{"actual":{"cogs":2,"ending_value":2,"pool":3,"units":2},"check":"half cent both ways","expected":{"cogs":1,"ending_value":2,"pool":3,"units":2},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"basic\", \"actual\": {\"units\": 35, \"pool\": 4451, \"ending_value\": 1526, \"cogs\": 2925}, \"expected\": {\"units\": 35, \"pool\": 4451, \"ending_value\": 1526, \"cogs\": 2925}, \"passed\": true}, {\"check\": \"no returns\", \"actual\": {\"units\": 10, \"pool\": 1261, \"ending_value\": 378, \"cogs\": 883}, \"expected\": {\"units\": 10, \"pool\": 1261, \"ending_value\": 378, \"cogs\": 883}, \"passed\": true}, {\"check\": \"return second\", \"actual\": {\"units\": 7, \"pool\": 544, \"ending_value\": 389, \"cogs\": 155}, \"expected\": {\"units\": 7, \"pool\": 544, \"ending_value\": 389, \"cogs\": 155}, \"passed\": true}, {\"check\": \"too many counted\", \"actual\": {\"error\": \"invalid count\"}, \"expected\": {\"error\": \"invalid count\"}, \"passed\": true}, {\"check\": \"empty count\", \"actual\": {\"units\": 5, \"pool\": 590, \"ending_value\": 0, \"cogs\": 590}, \"expected\": {\"units\": 5, \"pool\": 590, \"ending_value\": 0, \"cogs\": 590}, \"passed\": true}, {\"check\": \"odd costs\", \"actual\": {\"units\": 16, \"pool\": 1824, \"ending_value\": 1026, \"cogs\": 798}, \"expected\": {\"units\": 16, \"pool\": 1824, \"ending_value\": 1026, \"cogs\": 798}, \"passed\": true}, {\"check\": \"pricey begin\", \"actual\": {\"units\": 10, \"pool\": 3001, \"ending_value\": 1200, \"cogs\": 1801}, \"expected\": {\"units\": 10, \"pool\": 3001, \"ending_value\": 1200, \"cogs\": 1801}, \"passed\": true}, {\"check\": \"half cent both ways\", \"actual\": {\"units\": 2, \"pool\": 3, \"ending_value\": 2, \"cogs\": 2}, \"expected\": {\"units\": 2, \"pool\": 3, \"ending_value\": 2, \"cogs\": 1}, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}