{"abstract":"A fighter penalised for fouls gains ground on the cards.","category":"Sports scoring and tiebreakers","checks":8,"contract":"Ten-point-must decision. cards is three judge cards, each a list of [a_points, b_points] per round; deductions is [a_deducted, b_deducted] applied to every judge's totals. Each judge favours the higher total or scores a draw. Two or more judges for one fighter: \"unanimous decision\" if the other two agree, \"split decision\" if one judge favours the opponent, \"majority decision\" if one judge scores a draw. Otherwise: three draws \"unanimous draw\", two draws \"majority draw\", else \"split draw\". Return [result, winner or None, [\"a-b\" totals per judge]].","contract_signature":"cards, deductions","evaluation_group":"w2-sports-scoring-boxing-scorecard-decision","failed_approach":"Ignoring deductions entirely still misstates close cards.","family":"w2-sports-scoring-boxing-scorecard-decision-deduction-owner","id":"FA-84326","implementations":{"attempt":{"sha256":"eed8b8d9d39674ca0854c869b2769ca568923e8848e6db7bd669c894a39cc82c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cards, deductions):\n    verdicts = []\n    strs = []\n    for card in cards:\n        ta = sum(r[0] for r in card)\n        tb = sum(r[1] for r in card)\n        verdicts.append('A' if ta > tb else ('B' if tb > ta else 'D'))\n        strs.append('%d-%d' % (ta, tb))\n    a = verdicts.count('A')\n    b = verdicts.count('B')\n    d = verdicts.count('D')\n    if a >= 2 or b >= 2:\n        w = 'A' if a >= 2 else 'B'\n        loser_votes = b if w == 'A' else a\n        if loser_votes == 1:\n            kind = 'split decision'\n        elif d == 1:\n            kind = 'majority decision'\n        else:\n            kind = 'unanimous decision'\n        return [kind, w, strs]\n    if d == 3:\n        kind = 'unanimous draw'\n    elif d == 2:\n        kind = 'majority draw'\n    else:\n        kind = 'split draw'\n    return [kind, None, strs]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 9], [10, 10], [10, 10], [8, 10], [9, 10], [10, 9]],\n     [[10, 9], [10, 9], [8, 10], [10, 8], [9, 10], [8, 10]],\n     [[10, 9], [10, 9], [10, 10], [10, 9], [8, 10], [10, 8]]],\n    [0, 1]),\n   ['majority draw', None, ['57-57', '55-55', '58-54']]),\n  ('variant scenario 1',\n   ([[[9, 10], [10, 9], [10, 9], [8, 10], [10, 10], [10, 8]],\n     [[10, 8], [9, 10], [10, 9], [8, 10], [8, 10], [10, 9]],\n     [[10, 8], [8, 10], [10, 8], [10, 10], [10, 8], [10, 8]]],\n    [0, 0]),\n   ['split decision', 'A', ['57-56', '55-56', '58-52']]),\n  ('variant scenario 2',\n   ([[[10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 10],\n      [10, 8],\n      [10, 8],\n      [10, 8],\n      [9, 10],\n      [10, 8],\n      [10, 10],\n      [10, 9]],\n     [[8, 10],\n      [8, 10],\n      [9, 10],\n      [9, 10],\n      [10, 8],\n      [10, 9],\n      [8, 10],\n      [8, 10],\n      [8, 10],\n      [10, 9],\n      [10, 8],\n      [10, 10]],\n     [[10, 9],\n      [9, 10],\n      [10, 9],\n      [10, 9],\n      [9, 10],\n      [10, 8],\n      [8, 10],\n      [10, 10],\n      [10, 10],\n      [9, 10],\n      [10, 8],\n      [10, 8]]],\n    [0, 1]),\n   ['split decision', 'A', ['119-106', '108-113', '115-110']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 8],\n      [10, 8],\n      [8, 10],\n      [8, 10],\n      [10, 9],\n      [8, 10],\n      [9, 10],\n      [9, 10],\n      [10, 9],\n      [10, 8],\n      [8, 10],\n      [10, 8]],\n     [[9, 10],\n      [10, 10],\n      [9, 10],\n      [10, 8],\n      [10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 8],\n      [10, 9],\n      [10, 8],\n      [10, 9]],\n     [[10, 10],\n      [9, 10],\n      [10, 8],\n      [8, 10],\n      [10, 10],\n      [10, 9],\n      [10, 9],\n      [10, 8],\n      [10, 9],\n      [10, 9],\n      [10, 8],\n      [10, 8]]],\n    [0, 1]),\n   ['unanimous decision', 'A', ['110-109', '118-107', '117-107']]),\n  ('variant scenario 1',\n   ([[[10, 9], [10, 10], [10, 8], [9, 10], [10, 10], [10, 10]],\n     [[10, 10], [10, 9], [10, 9], [10, 8], [10, 10], [10, 9]],\n     [[10, 10], [10, 8], [10, 9], [10, 8], [10, 10], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['59-57', '60-55', '60-54']]),\n  ('variant scenario 2',\n   ([[[9, 10],\n      [8, 10],\n      [9, 10],\n      [10, 10],\n      [10, 8],\n      [10, 9],\n      [10, 10],\n      [10, 10],\n      [10, 10],\n      [10, 9],\n      [10, 9],\n      [8, 10]],\n     [[8, 10],\n      [9, 10],\n      [9, 10],\n      [9, 10],\n      [8, 10],\n      [10, 10],\n      [10, 9],\n      [10, 10],\n      [9, 10],\n      [10, 8],\n      [10, 9],\n      [10, 10]],\n     [[8, 10],\n      [9, 10],\n      [9, 10],\n      [8, 10],\n      [9, 10],\n      [10, 8],\n      [10, 8],\n      [10, 10],\n      [10, 9],\n      [10, 8],\n      [8, 10],\n      [8, 10]]],\n    [0, 0]),\n   ['unanimous decision', 'B', ['114-115', '112-116', '109-113']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 8], [10, 8], [10, 9], [10, 10], [10, 9], [8, 10]],\n     [[10, 9], [10, 8], [10, 9], [10, 8], [9, 10], [10, 9]],\n     [[10, 8], [10, 10], [10, 8], [8, 10], [9, 10], [10, 10]]],\n    [2, 0]),\n   ['split decision', 'A', ['56-54', '57-53', '55-56']]),\n  ('variant scenario 1',\n   ([[[10, 8], [10, 9], [8, 10], [10, 10], [9, 10], [10, 10]],\n     [[10, 10], [10, 8], [10, 8], [10, 10], [9, 10], [10, 10]],\n     [[9, 10], [10, 8], [8, 10], [10, 8], [10, 9], [10, 8]]],\n    [0, 0]),\n   ['majority decision', 'A', ['57-57', '59-56', '57-53']]),\n  ('variant scenario 2',\n   ([[[10, 9], [9, 10], [8, 10], [10, 10]],\n     [[10, 8], [10, 9], [10, 8], [10, 9]],\n     [[9, 10], [9, 10], [10, 9], [10, 8]]],\n    [0, 0]),\n   ['split decision', 'A', ['37-39', '40-34', '38-37']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[9, 10], [10, 10], [10, 10], [10, 8]],\n     [[10, 9], [10, 8], [8, 10], [8, 10]],\n     [[10, 9], [8, 10], [8, 10], [8, 10]]],\n    [1, 0]),\n   ['majority decision', 'B', ['38-38', '35-37', '33-39']]),\n  ('variant scenario 1',\n   ([[[8, 10], [10, 8], [10, 8], [10, 9]],\n     [[8, 10], [9, 10], [10, 8], [10, 9]],\n     [[8, 10], [10, 8], [8, 10], [9, 10]]],\n    [0, 0]),\n   ['split draw', None, ['38-35', '37-37', '35-38']]),\n  ('variant scenario 2',\n   ([[[10, 8], [10, 9], [9, 10], [10, 10]],\n     [[10, 9], [9, 10], [10, 9], [8, 10]],\n     [[8, 10], [10, 10], [10, 9], [10, 9]]],\n    [1, 0]),\n   ['split decision', 'B', ['38-37', '36-38', '37-38']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 8],\n      [9, 10],\n      [10, 9],\n      [8, 10],\n      [9, 10],\n      [10, 9],\n      [9, 10],\n      [10, 10],\n      [10, 9],\n      [9, 10],\n      [8, 10],\n      [10, 8]],\n     [[9, 10],\n      [8, 10],\n      [9, 10],\n      [10, 8],\n      [8, 10],\n      [8, 10],\n      [10, 8],\n      [10, 10],\n      [10, 10],\n      [10, 9],\n      [9, 10],\n      [10, 9]],\n     [[10, 10],\n      [10, 9],\n      [8, 10],\n      [10, 10],\n      [10, 8],\n      [9, 10],\n      [10, 10],\n      [9, 10],\n      [9, 10],\n      [9, 10],\n      [10, 9],\n      [10, 9]]],\n    [0, 1]),\n   ['majority draw', None, ['112-112', '111-113', '114-114']]),\n  ('variant scenario 1',\n   ([[[10, 9], [10, 8], [10, 8], [8, 10], [9, 10], [10, 8]],\n     [[10, 8], [10, 10], [10, 9], [8, 10], [10, 10], [10, 10]],\n     [[9, 10], [8, 10], [10, 9], [8, 10], [8, 10], [10, 8]]],\n    [0, 0]),\n   ['split decision', 'A', ['57-53', '58-57', '53-57']]),\n  ('variant scenario 2',\n   ([[[10, 10], [10, 8], [10, 8], [10, 9]],\n     [[10, 10], [10, 8], [8, 10], [8, 10]],\n     [[10, 9], [9, 10], [8, 10], [10, 10]]],\n    [0, 0]),\n   ['split decision', 'B', ['40-35', '36-38', '37-39']])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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":"fd316df9328fa4511f3f296ade42c819ac53dcc6c3028852f9f6eca95305ba39","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(cards, deductions):\n    verdicts = []\n    strs = []\n    for card in cards:\n        ta = sum(r[0] for r in card) - deductions[1]\n        tb = sum(r[1] for r in card) - deductions[0]\n        verdicts.append('A' if ta > tb else ('B' if tb > ta else 'D'))\n        strs.append('%d-%d' % (ta, tb))\n    a = verdicts.count('A')\n    b = verdicts.count('B')\n    d = verdicts.count('D')\n    if a >= 2 or b >= 2:\n        w = 'A' if a >= 2 else 'B'\n        loser_votes = b if w == 'A' else a\n        if loser_votes == 1:\n            kind = 'split decision'\n        elif d == 1:\n            kind = 'majority decision'\n        else:\n            kind = 'unanimous decision'\n        return [kind, w, strs]\n    if d == 3:\n        kind = 'unanimous draw'\n    elif d == 2:\n        kind = 'majority draw'\n    else:\n        kind = 'split draw'\n    return [kind, None, strs]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ndef run(args):\n    try:\n        return solve(*args)\n    except Exception as exc:\n        return 'raised ' + type(exc).__name__\ncases = [[('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 9], [10, 10], [10, 10], [8, 10], [9, 10], [10, 9]],\n     [[10, 9], [10, 9], [8, 10], [10, 8], [9, 10], [8, 10]],\n     [[10, 9], [10, 9], [10, 10], [10, 9], [8, 10], [10, 8]]],\n    [0, 1]),\n   ['majority draw', None, ['57-57', '55-55', '58-54']]),\n  ('variant scenario 1',\n   ([[[9, 10], [10, 9], [10, 9], [8, 10], [10, 10], [10, 8]],\n     [[10, 8], [9, 10], [10, 9], [8, 10], [8, 10], [10, 9]],\n     [[10, 8], [8, 10], [10, 8], [10, 10], [10, 8], [10, 8]]],\n    [0, 0]),\n   ['split decision', 'A', ['57-56', '55-56', '58-52']]),\n  ('variant scenario 2',\n   ([[[10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 10],\n      [10, 8],\n      [10, 8],\n      [10, 8],\n      [9, 10],\n      [10, 8],\n      [10, 10],\n      [10, 9]],\n     [[8, 10],\n      [8, 10],\n      [9, 10],\n      [9, 10],\n      [10, 8],\n      [10, 9],\n      [8, 10],\n      [8, 10],\n      [8, 10],\n      [10, 9],\n      [10, 8],\n      [10, 10]],\n     [[10, 9],\n      [9, 10],\n      [10, 9],\n      [10, 9],\n      [9, 10],\n      [10, 8],\n      [8, 10],\n      [10, 10],\n      [10, 10],\n      [9, 10],\n      [10, 8],\n      [10, 8]]],\n    [0, 1]),\n   ['split decision', 'A', ['119-106', '108-113', '115-110']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 8],\n      [10, 8],\n      [8, 10],\n      [8, 10],\n      [10, 9],\n      [8, 10],\n      [9, 10],\n      [9, 10],\n      [10, 9],\n      [10, 8],\n      [8, 10],\n      [10, 8]],\n     [[9, 10],\n      [10, 10],\n      [9, 10],\n      [10, 8],\n      [10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 9],\n      [10, 8],\n      [10, 9],\n      [10, 8],\n      [10, 9]],\n     [[10, 10],\n      [9, 10],\n      [10, 8],\n      [8, 10],\n      [10, 10],\n      [10, 9],\n      [10, 9],\n      [10, 8],\n      [10, 9],\n      [10, 9],\n      [10, 8],\n      [10, 8]]],\n    [0, 1]),\n   ['unanimous decision', 'A', ['110-109', '118-107', '117-107']]),\n  ('variant scenario 1',\n   ([[[10, 9], [10, 10], [10, 8], [9, 10], [10, 10], [10, 10]],\n     [[10, 10], [10, 9], [10, 9], [10, 8], [10, 10], [10, 9]],\n     [[10, 10], [10, 8], [10, 9], [10, 8], [10, 10], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['59-57', '60-55', '60-54']]),\n  ('variant scenario 2',\n   ([[[9, 10],\n      [8, 10],\n      [9, 10],\n      [10, 10],\n      [10, 8],\n      [10, 9],\n      [10, 10],\n      [10, 10],\n      [10, 10],\n      [10, 9],\n      [10, 9],\n      [8, 10]],\n     [[8, 10],\n      [9, 10],\n      [9, 10],\n      [9, 10],\n      [8, 10],\n      [10, 10],\n      [10, 9],\n      [10, 10],\n      [9, 10],\n      [10, 8],\n      [10, 9],\n      [10, 10]],\n     [[8, 10],\n      [9, 10],\n      [9, 10],\n      [8, 10],\n      [9, 10],\n      [10, 8],\n      [10, 8],\n      [10, 10],\n      [10, 9],\n      [10, 8],\n      [8, 10],\n      [8, 10]]],\n    [0, 0]),\n   ['unanimous decision', 'B', ['114-115', '112-116', '109-113']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 8], [10, 8], [10, 9], [10, 10], [10, 9], [8, 10]],\n     [[10, 9], [10, 8], [10, 9], [10, 8], [9, 10], [10, 9]],\n     [[10, 8], [10, 10], [10, 8], [8, 10], [9, 10], [10, 10]]],\n    [2, 0]),\n   ['split decision', 'A', ['56-54', '57-53', '55-56']]),\n  ('variant scenario 1',\n   ([[[10, 8], [10, 9], [8, 10], [10, 10], [9, 10], [10, 10]],\n     [[10, 10], [10, 8], [10, 8], [10, 10], [9, 10], [10, 10]],\n     [[9, 10], [10, 8], [8, 10], [10, 8], [10, 9], [10, 8]]],\n    [0, 0]),\n   ['majority decision', 'A', ['57-57', '59-56', '57-53']]),\n  ('variant scenario 2',\n   ([[[10, 9], [9, 10], [8, 10], [10, 10]],\n     [[10, 8], [10, 9], [10, 8], [10, 9]],\n     [[9, 10], [9, 10], [10, 9], [10, 8]]],\n    [0, 0]),\n   ['split decision', 'A', ['37-39', '40-34', '38-37']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[9, 10], [10, 10], [10, 10], [10, 8]],\n     [[10, 9], [10, 8], [8, 10], [8, 10]],\n     [[10, 9], [8, 10], [8, 10], [8, 10]]],\n    [1, 0]),\n   ['majority decision', 'B', ['38-38', '35-37', '33-39']]),\n  ('variant scenario 1',\n   ([[[8, 10], [10, 8], [10, 8], [10, 9]],\n     [[8, 10], [9, 10], [10, 8], [10, 9]],\n     [[8, 10], [10, 8], [8, 10], [9, 10]]],\n    [0, 0]),\n   ['split draw', None, ['38-35', '37-37', '35-38']]),\n  ('variant scenario 2',\n   ([[[10, 8], [10, 9], [9, 10], [10, 10]],\n     [[10, 9], [9, 10], [10, 9], [8, 10]],\n     [[8, 10], [10, 10], [10, 9], [10, 9]]],\n    [1, 0]),\n   ['split decision', 'B', ['38-37', '36-38', '37-38']])],\n [('control unanimous',\n   ([[[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]], [[10, 9], [10, 9], [10, 9]]],\n    [0, 0]),\n   ['unanimous decision', 'A', ['30-27', '30-27', '30-27']]),\n  ('boundary split decision',\n   ([[[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [10, 9]], [[10, 9], [9, 10], [9, 10]]],\n    [0, 0]),\n   ['split decision', 'A', ['29-28', '29-28', '28-29']]),\n  ('boundary deduction creates draw',\n   ([[[10, 9], [10, 9]], [[10, 9], [10, 9]], [[10, 9], [9, 10]]], [2, 0]),\n   ['majority draw', None, ['18-18', '18-18', '17-19']]),\n  ('control split draw',\n   ([[[10, 9]], [[9, 10]], [[10, 10]]], [0, 0]),\n   ['split draw', None, ['10-9', '9-10', '10-10']]),\n  ('control unanimous draw',\n   ([[[10, 10]], [[10, 10]], [[10, 10]]], [0, 0]),\n   ['unanimous draw', None, ['10-10', '10-10', '10-10']]),\n  ('regression: deduction owner',\n   ([[[10, 8],\n      [9, 10],\n      [10, 9],\n      [8, 10],\n      [9, 10],\n      [10, 9],\n      [9, 10],\n      [10, 10],\n      [10, 9],\n      [9, 10],\n      [8, 10],\n      [10, 8]],\n     [[9, 10],\n      [8, 10],\n      [9, 10],\n      [10, 8],\n      [8, 10],\n      [8, 10],\n      [10, 8],\n      [10, 10],\n      [10, 10],\n      [10, 9],\n      [9, 10],\n      [10, 9]],\n     [[10, 10],\n      [10, 9],\n      [8, 10],\n      [10, 10],\n      [10, 8],\n      [9, 10],\n      [10, 10],\n      [9, 10],\n      [9, 10],\n      [9, 10],\n      [10, 9],\n      [10, 9]]],\n    [0, 1]),\n   ['majority draw', None, ['112-112', '111-113', '114-114']]),\n  ('variant scenario 1',\n   ([[[10, 9], [10, 8], [10, 8], [8, 10], [9, 10], [10, 8]],\n     [[10, 8], [10, 10], [10, 9], [8, 10], [10, 10], [10, 10]],\n     [[9, 10], [8, 10], [10, 9], [8, 10], [8, 10], [10, 8]]],\n    [0, 0]),\n   ['split decision', 'A', ['57-53', '58-57', '53-57']]),\n  ('variant scenario 2',\n   ([[[10, 10], [10, 8], [10, 8], [10, 9]],\n     [[10, 10], [10, 8], [8, 10], [8, 10]],\n     [[10, 9], [9, 10], [8, 10], [10, 10]]],\n    [0, 0]),\n   ['split decision', 'B', ['40-35', '36-38', '37-39']])]]\nfor label, args, expected in cases[N - 1]:\n    check(label, run(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 toy contract stated in the contract field; not a claim of conformance with any governing body rulebook or operator house rules. 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-sports-scoring-boxing-scorecard-decision-deduction-owner","generated_at":"2026-09-29T14:50:29.828288+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Fight-result feeds classify decisions from judges' cards after deductions.","root_cause":"Each fighter's total is reduced by the opponent's deductions.","sha256":"b5e4a751948a94ac3ce53f31bc8d2cb3fa78ebc50d46483f9b4f98189f8a74fb","title":"Point deductions applied to the wrong fighter · 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":42.73,"exit_code":1,"observations":[{"actual":["unanimous decision","A",["30-27","30-27","30-27"]],"check":"control unanimous","expected":["unanimous decision","A",["30-27","30-27","30-27"]],"passed":true},{"actual":["split decision","A",["29-28","29-28","28-29"]],"check":"boundary split decision","expected":["split decision","A",["29-28","29-28","28-29"]],"passed":true},{"actual":["majority decision","A",["20-18","20-18","19-19"]],"check":"boundary deduction creates draw","expected":["majority draw",null,["18-18","18-18","17-19"]],"passed":false},{"actual":["split draw",null,["10-9","9-10","10-10"]],"check":"control split draw","expected":["split draw",null,["10-9","9-10","10-10"]],"passed":true},{"actual":["unanimous draw",null,["10-10","10-10","10-10"]],"check":"control unanimous draw","expected":["unanimous draw",null,["10-10","10-10","10-10"]],"passed":true},{"actual":["split decision","B",["57-58","55-56","58-55"]],"check":"regression: deduction owner","expected":["majority draw",null,["57-57","55-55","58-54"]],"passed":false},{"actual":["split decision","A",["57-56","55-56","58-52"]],"check":"variant scenario 1","expected":["split decision","A",["57-56","55-56","58-52"]],"passed":true},{"actual":["split decision","A",["119-107","108-114","115-111"]],"check":"variant scenario 2","expected":["split decision","A",["119-106","108-113","115-110"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control unanimous\", \"actual\": [\"unanimous decision\", \"A\", [\"30-27\", \"30-27\", \"30-27\"]], \"expected\": [\"unanimous decision\", \"A\", [\"30-27\", \"30-27\", \"30-27\"]], \"passed\": true}, {\"check\": \"boundary split decision\", \"actual\": [\"split decision\", \"A\", [\"29-28\", \"29-28\", \"28-29\"]], \"expected\": [\"split decision\", \"A\", [\"29-28\", \"29-28\", \"28-29\"]], \"passed\": true}, {\"check\": \"boundary deduction creates draw\", \"actual\": [\"majority decision\", \"A\", [\"20-18\", \"20-18\", \"19-19\"]], \"expected\": [\"majority draw\", null, [\"18-18\", \"18-18\", \"17-19\"]], \"passed\": false}, {\"check\": \"control split draw\", \"actual\": [\"split draw\", null, [\"10-9\", \"9-10\", \"10-10\"]], \"expected\": [\"split draw\", null, [\"10-9\", \"9-10\", \"10-10\"]], \"passed\": true}, {\"check\": \"control unanimous draw\", \"actual\": [\"unanimous draw\", null, [\"10-10\", \"10-10\", \"10-10\"]], \"expected\": [\"unanimous draw\", null, [\"10-10\", \"10-10\", \"10-10\"]], \"passed\": true}, {\"check\": \"regression: deduction owner\", \"actual\": [\"split decision\", \"B\", [\"57-58\", \"55-56\", \"58-55\"]], \"expected\": [\"majority draw\", null, [\"57-57\", \"55-55\", \"58-54\"]], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"split decision\", \"A\", [\"57-56\", \"55-56\", \"58-52\"]], \"expected\": [\"split decision\", \"A\", [\"57-56\", \"55-56\", \"58-52\"]], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"split decision\", \"A\", [\"119-107\", \"108-114\", \"115-111\"]], \"expected\": [\"split decision\", \"A\", [\"119-106\", \"108-113\", \"115-110\"]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.699,"exit_code":1,"observations":[{"actual":["unanimous decision","A",["30-27","30-27","30-27"]],"check":"control unanimous","expected":["unanimous decision","A",["30-27","30-27","30-27"]],"passed":true},{"actual":["split decision","A",["29-28","29-28","28-29"]],"check":"boundary split decision","expected":["split decision","A",["29-28","29-28","28-29"]],"passed":true},{"actual":["unanimous decision","A",["20-16","20-16","19-17"]],"check":"boundary deduction creates draw","expected":["majority draw",null,["18-18","18-18","17-19"]],"passed":false},{"actual":["split draw",null,["10-9","9-10","10-10"]],"check":"control split draw","expected":["split draw",null,["10-9","9-10","10-10"]],"passed":true},{"actual":["unanimous draw",null,["10-10","10-10","10-10"]],"check":"control unanimous draw","expected":["unanimous draw",null,["10-10","10-10","10-10"]],"passed":true},{"actual":["split decision","B",["56-58","54-56","57-55"]],"check":"regression: deduction owner","expected":["majority draw",null,["57-57","55-55","58-54"]],"passed":false},{"actual":["split decision","A",["57-56","55-56","58-52"]],"check":"variant scenario 1","expected":["split decision","A",["57-56","55-56","58-52"]],"passed":true},{"actual":["split decision","A",["118-107","107-114","114-111"]],"check":"variant scenario 2","expected":["split decision","A",["119-106","108-113","115-110"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control unanimous\", \"actual\": [\"unanimous decision\", \"A\", [\"30-27\", \"30-27\", \"30-27\"]], \"expected\": [\"unanimous decision\", \"A\", [\"30-27\", \"30-27\", \"30-27\"]], \"passed\": true}, {\"check\": \"boundary split decision\", \"actual\": [\"split decision\", \"A\", [\"29-28\", \"29-28\", \"28-29\"]], \"expected\": [\"split decision\", \"A\", [\"29-28\", \"29-28\", \"28-29\"]], \"passed\": true}, {\"check\": \"boundary deduction creates draw\", \"actual\": [\"unanimous decision\", \"A\", [\"20-16\", \"20-16\", \"19-17\"]], \"expected\": [\"majority draw\", null, [\"18-18\", \"18-18\", \"17-19\"]], \"passed\": false}, {\"check\": \"control split draw\", \"actual\": [\"split draw\", null, [\"10-9\", \"9-10\", \"10-10\"]], \"expected\": [\"split draw\", null, [\"10-9\", \"9-10\", \"10-10\"]], \"passed\": true}, {\"check\": \"control unanimous draw\", \"actual\": [\"unanimous draw\", null, [\"10-10\", \"10-10\", \"10-10\"]], \"expected\": [\"unanimous draw\", null, [\"10-10\", \"10-10\", \"10-10\"]], \"passed\": true}, {\"check\": \"regression: deduction owner\", \"actual\": [\"split decision\", \"B\", [\"56-58\", \"54-56\", \"57-55\"]], \"expected\": [\"majority draw\", null, [\"57-57\", \"55-55\", \"58-54\"]], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [\"split decision\", \"A\", [\"57-56\", \"55-56\", \"58-52\"]], \"expected\": [\"split decision\", \"A\", [\"57-56\", \"55-56\", \"58-52\"]], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [\"split decision\", \"A\", [\"118-107\", \"107-114\", \"114-111\"]], \"expected\": [\"split decision\", \"A\", [\"119-106\", \"108-113\", \"115-110\"]], \"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."}}