{"abstract":"A double-bogey on a stroke hole scores too many or too few points.","category":"Sports scoring and tiebreakers","checks":9,"contract":"Stableford points with stroke allocation. holes rows are [par, stroke_index, strokes] with stroke index 1-18 and strokes None for a hole with no score. A handicap H >= 0 receives H // 18 strokes on every hole plus one more on holes with stroke index <= H % 18. A plus handicap (H < 0) gives back one stroke on holes with stroke index > 18 + H. Points = max(0, 2 + par - (strokes - received)); a hole with no score earns 0. Return [total, per-hole points].","evaluation_group":"w2-sports-scoring-golf-stableford-allocation","failed_approach":"Removing the floor gives negative points for blow-up holes.","family":"w2-sports-scoring-golf-stableford-allocation-zero-floor-stage","id":"FA-84161","implementations":{"attempt":{"sha256":"e681170a589c9fa0a6be4c1f06e2f0e2a0ff4656b9d5d465b83cd50a630c0107","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(holes, handicap):\n    per = []\n    for par, si, strokes in holes:\n        if handicap >= 0:\n            received = handicap // 18 + (1 if si <= handicap % 18 else 0)\n        else:\n            received = -1 if si > 18 + handicap else 0\n        if strokes is None:\n            per.append(0)\n            continue\n        per.append(2 + par - (strokes - received))\n    return [sum(per), per]\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 scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage', ([[5, 9, 9], [4, 8, 2], [4, 1, 4]], 18), [8, [0, 5, 3]]),\n  ('variant scenario 1',\n   ([[4, 5, 8], [5, 6, 8], [4, 8, 6], [4, 4, 7], [4, 1, 6], [4, 17, 2], [5, 10, 8], [4, 11, 7]],\n    -2),\n   [3, [0, 0, 0, 0, 0, 3, 0, 0]]),\n  ('variant scenario 2',\n   ([[4, 15, 4], [3, 4, 4], [5, 17, 9], [3, 14, 4], [3, 7, 4]], 34),\n   [13, [4, 3, 0, 3, 3]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[5, 13, 7], [4, 10, None], [3, 8, 6], [3, 4, 6], [4, 17, 4], [5, 12, 8], [3, 14, None]], -2),\n   [1, [0, 0, 0, 0, 1, 0, 0]]),\n  ('regression: zero floor stage',\n   ([[4, 6, 5],\n     [4, 4, 7],\n     [5, 17, 5],\n     [5, 16, None],\n     [5, 14, 6],\n     [3, 18, 3],\n     [3, 11, 7],\n     [4, 9, 5]],\n    20),\n   [12, [2, 0, 3, 0, 2, 3, 0, 2]]),\n  ('variant scenario 1', ([[4, 2, None], [3, 4, 7], [3, 10, 3]], 18), [3, [0, 0, 3]]),\n  ('variant scenario 2',\n   ([[3, 14, 7], [5, 5, 5], [3, 4, 4], [4, 17, 4], [4, 8, 4], [4, 10, 4]], 0),\n   [9, [0, 2, 1, 2, 2, 2]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[4, 3, 7], [5, 17, 9], [4, 11, 5], [4, 5, 5], [4, 8, 5], [5, 2, 5]], 6),\n   [7, [0, 0, 1, 2, 1, 3]]),\n  ('variant scenario 1',\n   ([[3, 8, 1],\n     [3, 7, 7],\n     [5, 9, 8],\n     [4, 14, None],\n     [4, 4, 8],\n     [4, 13, 2],\n     [4, 10, 7],\n     [4, 5, 5],\n     [4, 17, 8]],\n    -2),\n   [9, [4, 0, 0, 0, 0, 4, 0, 1, 0]]),\n  ('variant scenario 2',\n   ([[4, 2, 6], [3, 9, 6], [4, 12, 2], [4, 13, 8], [4, 16, None]], 3),\n   [5, [1, 0, 4, 0, 0]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[5, 7, 6],\n     [3, 9, 4],\n     [5, 12, 6],\n     [3, 15, 2],\n     [4, 16, 5],\n     [3, 17, 4],\n     [3, 6, 2],\n     [3, 2, 7],\n     [4, 3, 6]],\n    15),\n   [17, [2, 2, 2, 4, 1, 1, 4, 0, 1]]),\n  ('variant scenario 1',\n   ([[3, 8, 2],\n     [4, 7, None],\n     [4, 14, 4],\n     [4, 9, 7],\n     [5, 11, 5],\n     [4, 1, 8],\n     [3, 5, 3],\n     [5, 18, 5],\n     [4, 16, 3]],\n    18),\n   [20, [4, 0, 3, 0, 3, 0, 3, 3, 4]]),\n  ('variant scenario 2',\n   ([[4, 4, None],\n     [4, 6, 6],\n     [4, 11, 7],\n     [4, 18, 8],\n     [3, 3, 3],\n     [3, 12, 7],\n     [4, 14, 4],\n     [3, 17, 4]],\n    10),\n   [7, [0, 1, 0, 0, 3, 0, 2, 1]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[4, 2, 4],\n     [3, 8, 1],\n     [3, 12, 1],\n     [5, 15, 8],\n     [4, 7, 6],\n     [4, 4, 3],\n     [5, 3, 9],\n     [5, 6, 6],\n     [4, 14, 6],\n     [4, 11, 2],\n     [3, 5, 2]],\n    7),\n   [26, [3, 4, 4, 0, 1, 4, 0, 2, 0, 4, 4]]),\n  ('variant scenario 1',\n   ([[5, 9, 4],\n     [3, 12, 3],\n     [4, 15, 5],\n     [5, 2, 7],\n     [3, 17, 7],\n     [4, 18, 3],\n     [4, 11, 8],\n     [5, 16, 6],\n     [4, 14, 4],\n     [4, 7, 7],\n     [5, 5, 9],\n     [3, 4, 7]],\n    9),\n   [14, [4, 2, 1, 1, 0, 3, 0, 1, 2, 0, 0, 0]]),\n  ('variant scenario 2',\n   ([[4, 2, 8], [5, 1, 7], [3, 3, 1], [4, 10, 8], [5, 6, 8], [3, 4, 6], [4, 11, 5], [3, 14, None]],\n    20),\n   [9, [0, 2, 5, 0, 0, 0, 2, 0]])]]\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":"705ee42c8c12433284c05b7bdff20360fd8fa5530ab2f6d7193733d88848d55f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(holes, handicap):\n    per = []\n    for par, si, strokes in holes:\n        if handicap >= 0:\n            received = handicap // 18 + (1 if si <= handicap % 18 else 0)\n        else:\n            received = -1 if si > 18 + handicap else 0\n        if strokes is None:\n            per.append(0)\n            continue\n        per.append(max(0, 2 + par - strokes) + received)\n    return [sum(per), per]\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 scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage', ([[5, 9, 9], [4, 8, 2], [4, 1, 4]], 18), [8, [0, 5, 3]]),\n  ('variant scenario 1',\n   ([[4, 5, 8], [5, 6, 8], [4, 8, 6], [4, 4, 7], [4, 1, 6], [4, 17, 2], [5, 10, 8], [4, 11, 7]],\n    -2),\n   [3, [0, 0, 0, 0, 0, 3, 0, 0]]),\n  ('variant scenario 2',\n   ([[4, 15, 4], [3, 4, 4], [5, 17, 9], [3, 14, 4], [3, 7, 4]], 34),\n   [13, [4, 3, 0, 3, 3]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[5, 13, 7], [4, 10, None], [3, 8, 6], [3, 4, 6], [4, 17, 4], [5, 12, 8], [3, 14, None]], -2),\n   [1, [0, 0, 0, 0, 1, 0, 0]]),\n  ('regression: zero floor stage',\n   ([[4, 6, 5],\n     [4, 4, 7],\n     [5, 17, 5],\n     [5, 16, None],\n     [5, 14, 6],\n     [3, 18, 3],\n     [3, 11, 7],\n     [4, 9, 5]],\n    20),\n   [12, [2, 0, 3, 0, 2, 3, 0, 2]]),\n  ('variant scenario 1', ([[4, 2, None], [3, 4, 7], [3, 10, 3]], 18), [3, [0, 0, 3]]),\n  ('variant scenario 2',\n   ([[3, 14, 7], [5, 5, 5], [3, 4, 4], [4, 17, 4], [4, 8, 4], [4, 10, 4]], 0),\n   [9, [0, 2, 1, 2, 2, 2]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[4, 3, 7], [5, 17, 9], [4, 11, 5], [4, 5, 5], [4, 8, 5], [5, 2, 5]], 6),\n   [7, [0, 0, 1, 2, 1, 3]]),\n  ('variant scenario 1',\n   ([[3, 8, 1],\n     [3, 7, 7],\n     [5, 9, 8],\n     [4, 14, None],\n     [4, 4, 8],\n     [4, 13, 2],\n     [4, 10, 7],\n     [4, 5, 5],\n     [4, 17, 8]],\n    -2),\n   [9, [4, 0, 0, 0, 0, 4, 0, 1, 0]]),\n  ('variant scenario 2',\n   ([[4, 2, 6], [3, 9, 6], [4, 12, 2], [4, 13, 8], [4, 16, None]], 3),\n   [5, [1, 0, 4, 0, 0]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[5, 7, 6],\n     [3, 9, 4],\n     [5, 12, 6],\n     [3, 15, 2],\n     [4, 16, 5],\n     [3, 17, 4],\n     [3, 6, 2],\n     [3, 2, 7],\n     [4, 3, 6]],\n    15),\n   [17, [2, 2, 2, 4, 1, 1, 4, 0, 1]]),\n  ('variant scenario 1',\n   ([[3, 8, 2],\n     [4, 7, None],\n     [4, 14, 4],\n     [4, 9, 7],\n     [5, 11, 5],\n     [4, 1, 8],\n     [3, 5, 3],\n     [5, 18, 5],\n     [4, 16, 3]],\n    18),\n   [20, [4, 0, 3, 0, 3, 0, 3, 3, 4]]),\n  ('variant scenario 2',\n   ([[4, 4, None],\n     [4, 6, 6],\n     [4, 11, 7],\n     [4, 18, 8],\n     [3, 3, 3],\n     [3, 12, 7],\n     [4, 14, 4],\n     [3, 17, 4]],\n    10),\n   [7, [0, 1, 0, 0, 3, 0, 2, 1]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[4, 2, 4],\n     [3, 8, 1],\n     [3, 12, 1],\n     [5, 15, 8],\n     [4, 7, 6],\n     [4, 4, 3],\n     [5, 3, 9],\n     [5, 6, 6],\n     [4, 14, 6],\n     [4, 11, 2],\n     [3, 5, 2]],\n    7),\n   [26, [3, 4, 4, 0, 1, 4, 0, 2, 0, 4, 4]]),\n  ('variant scenario 1',\n   ([[5, 9, 4],\n     [3, 12, 3],\n     [4, 15, 5],\n     [5, 2, 7],\n     [3, 17, 7],\n     [4, 18, 3],\n     [4, 11, 8],\n     [5, 16, 6],\n     [4, 14, 4],\n     [4, 7, 7],\n     [5, 5, 9],\n     [3, 4, 7]],\n    9),\n   [14, [4, 2, 1, 1, 0, 3, 0, 1, 2, 0, 0, 0]]),\n  ('variant scenario 2',\n   ([[4, 2, 8], [5, 1, 7], [3, 3, 1], [4, 10, 8], [5, 6, 8], [3, 4, 6], [4, 11, 5], [3, 14, None]],\n    20),\n   [9, [0, 2, 5, 0, 0, 0, 2, 0]])]]\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"},"fixed":{"sha256":"e8fbb9f23f671e8ba632d132c8e9594e5caf1d6cc7a589814b7a6246044fca53","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(holes, handicap):\n    per = []\n    for par, si, strokes in holes:\n        if handicap >= 0:\n            received = handicap // 18 + (1 if si <= handicap % 18 else 0)\n        else:\n            received = -1 if si > 18 + handicap else 0\n        if strokes is None:\n            per.append(0)\n            continue\n        per.append(max(0, 2 + par - (strokes - received)))\n    return [sum(per), per]\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 scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage', ([[5, 9, 9], [4, 8, 2], [4, 1, 4]], 18), [8, [0, 5, 3]]),\n  ('variant scenario 1',\n   ([[4, 5, 8], [5, 6, 8], [4, 8, 6], [4, 4, 7], [4, 1, 6], [4, 17, 2], [5, 10, 8], [4, 11, 7]],\n    -2),\n   [3, [0, 0, 0, 0, 0, 3, 0, 0]]),\n  ('variant scenario 2',\n   ([[4, 15, 4], [3, 4, 4], [5, 17, 9], [3, 14, 4], [3, 7, 4]], 34),\n   [13, [4, 3, 0, 3, 3]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[5, 13, 7], [4, 10, None], [3, 8, 6], [3, 4, 6], [4, 17, 4], [5, 12, 8], [3, 14, None]], -2),\n   [1, [0, 0, 0, 0, 1, 0, 0]]),\n  ('regression: zero floor stage',\n   ([[4, 6, 5],\n     [4, 4, 7],\n     [5, 17, 5],\n     [5, 16, None],\n     [5, 14, 6],\n     [3, 18, 3],\n     [3, 11, 7],\n     [4, 9, 5]],\n    20),\n   [12, [2, 0, 3, 0, 2, 3, 0, 2]]),\n  ('variant scenario 1', ([[4, 2, None], [3, 4, 7], [3, 10, 3]], 18), [3, [0, 0, 3]]),\n  ('variant scenario 2',\n   ([[3, 14, 7], [5, 5, 5], [3, 4, 4], [4, 17, 4], [4, 8, 4], [4, 10, 4]], 0),\n   [9, [0, 2, 1, 2, 2, 2]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[4, 3, 7], [5, 17, 9], [4, 11, 5], [4, 5, 5], [4, 8, 5], [5, 2, 5]], 6),\n   [7, [0, 0, 1, 2, 1, 3]]),\n  ('variant scenario 1',\n   ([[3, 8, 1],\n     [3, 7, 7],\n     [5, 9, 8],\n     [4, 14, None],\n     [4, 4, 8],\n     [4, 13, 2],\n     [4, 10, 7],\n     [4, 5, 5],\n     [4, 17, 8]],\n    -2),\n   [9, [4, 0, 0, 0, 0, 4, 0, 1, 0]]),\n  ('variant scenario 2',\n   ([[4, 2, 6], [3, 9, 6], [4, 12, 2], [4, 13, 8], [4, 16, None]], 3),\n   [5, [1, 0, 4, 0, 0]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[5, 7, 6],\n     [3, 9, 4],\n     [5, 12, 6],\n     [3, 15, 2],\n     [4, 16, 5],\n     [3, 17, 4],\n     [3, 6, 2],\n     [3, 2, 7],\n     [4, 3, 6]],\n    15),\n   [17, [2, 2, 2, 4, 1, 1, 4, 0, 1]]),\n  ('variant scenario 1',\n   ([[3, 8, 2],\n     [4, 7, None],\n     [4, 14, 4],\n     [4, 9, 7],\n     [5, 11, 5],\n     [4, 1, 8],\n     [3, 5, 3],\n     [5, 18, 5],\n     [4, 16, 3]],\n    18),\n   [20, [4, 0, 3, 0, 3, 0, 3, 3, 4]]),\n  ('variant scenario 2',\n   ([[4, 4, None],\n     [4, 6, 6],\n     [4, 11, 7],\n     [4, 18, 8],\n     [3, 3, 3],\n     [3, 12, 7],\n     [4, 14, 4],\n     [3, 17, 4]],\n    10),\n   [7, [0, 1, 0, 0, 3, 0, 2, 1]])],\n [('control scratch par', ([[4, 1, 4], [3, 18, 3]], 0), [4, [2, 2]]),\n  ('boundary stroke index equals remainder', ([[4, 5, 5], [4, 6, 5]], 5), [3, [2, 1]]),\n  ('boundary second shot above 18', ([[4, 2, 6], [4, 3, 6]], 20), [3, [2, 1]]),\n  ('boundary plus handicap', ([[4, 18, 4], [4, 17, 4]], -1), [3, [1, 2]]),\n  ('control blob hole', ([[5, 1, 9], [4, 2, None]], 10), [0, [0, 0]]),\n  ('control net albatross', ([[5, 1, 4]], 18), [4, [4]]),\n  ('regression: zero floor stage',\n   ([[4, 2, 4],\n     [3, 8, 1],\n     [3, 12, 1],\n     [5, 15, 8],\n     [4, 7, 6],\n     [4, 4, 3],\n     [5, 3, 9],\n     [5, 6, 6],\n     [4, 14, 6],\n     [4, 11, 2],\n     [3, 5, 2]],\n    7),\n   [26, [3, 4, 4, 0, 1, 4, 0, 2, 0, 4, 4]]),\n  ('variant scenario 1',\n   ([[5, 9, 4],\n     [3, 12, 3],\n     [4, 15, 5],\n     [5, 2, 7],\n     [3, 17, 7],\n     [4, 18, 3],\n     [4, 11, 8],\n     [5, 16, 6],\n     [4, 14, 4],\n     [4, 7, 7],\n     [5, 5, 9],\n     [3, 4, 7]],\n    9),\n   [14, [4, 2, 1, 1, 0, 3, 0, 1, 2, 0, 0, 0]]),\n  ('variant scenario 2',\n   ([[4, 2, 8], [5, 1, 7], [3, 3, 1], [4, 10, 8], [5, 6, 8], [3, 4, 6], [4, 11, 5], [3, 14, None]],\n    20),\n   [9, [0, 2, 5, 0, 0, 0, 2, 0]])]]\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-golf-stableford-allocation-zero-floor-stage","generated_at":"2026-09-29T14:50:28.414735+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Club competition software computes Stableford totals from gross cards and course handicaps.","repair":"Compute net strokes first, then floor the points at zero.","root_cause":"The gross score is floored at zero points before the received strokes are added.","sha256":"2c463476fd7d0aeed9da6bd2981a3cdf0ba2778d3cd757c97996711076057f51","title":"Points floor applied before adding handicap strokes · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.172,"exit_code":1,"observations":[{"actual":[4,[2,2]],"check":"control scratch par","expected":[4,[2,2]],"passed":true},{"actual":[3,[2,1]],"check":"boundary stroke index equals remainder","expected":[3,[2,1]],"passed":true},{"actual":[3,[2,1]],"check":"boundary second shot above 18","expected":[3,[2,1]],"passed":true},{"actual":[3,[1,2]],"check":"boundary plus handicap","expected":[3,[1,2]],"passed":true},{"actual":[-1,[-1,0]],"check":"control blob hole","expected":[0,[0,0]],"passed":false},{"actual":[4,[4]],"check":"control net albatross","expected":[4,[4]],"passed":true},{"actual":[7,[-1,5,3]],"check":"regression: zero floor stage","expected":[8,[0,5,3]],"passed":false},{"actual":[-3,[-2,-1,0,-1,0,3,-1,-1]],"check":"variant scenario 1","expected":[3,[0,0,0,0,0,3,0,0]],"passed":false},{"actual":[12,[4,3,-1,3,3]],"check":"variant scenario 2","expected":[13,[4,3,0,3,3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control scratch par\", \"actual\": [4, [2, 2]], \"expected\": [4, [2, 2]], \"passed\": true}, {\"check\": \"boundary stroke index equals remainder\", \"actual\": [3, [2, 1]], \"expected\": [3, [2, 1]], \"passed\": true}, {\"check\": \"boundary second shot above 18\", \"actual\": [3, [2, 1]], \"expected\": [3, [2, 1]], \"passed\": true}, {\"check\": \"boundary plus handicap\", \"actual\": [3, [1, 2]], \"expected\": [3, [1, 2]], \"passed\": true}, {\"check\": \"control blob hole\", \"actual\": [-1, [-1, 0]], \"expected\": [0, [0, 0]], \"passed\": false}, {\"check\": \"control net albatross\", \"actual\": [4, [4]], \"expected\": [4, [4]], \"passed\": true}, {\"check\": \"regression: zero floor stage\", \"actual\": [7, [-1, 5, 3]], \"expected\": [8, [0, 5, 3]], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [-3, [-2, -1, 0, -1, 0, 3, -1, -1]], \"expected\": [3, [0, 0, 0, 0, 0, 3, 0, 0]], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [12, [4, 3, -1, 3, 3]], \"expected\": [13, [4, 3, 0, 3, 3]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.587,"exit_code":1,"observations":[{"actual":[4,[2,2]],"check":"control scratch par","expected":[4,[2,2]],"passed":true},{"actual":[3,[2,1]],"check":"boundary stroke index equals remainder","expected":[3,[2,1]],"passed":true},{"actual":[3,[2,1]],"check":"boundary second shot above 18","expected":[3,[2,1]],"passed":true},{"actual":[3,[1,2]],"check":"boundary plus handicap","expected":[3,[1,2]],"passed":true},{"actual":[1,[1,0]],"check":"control blob hole","expected":[0,[0,0]],"passed":false},{"actual":[4,[4]],"check":"control net albatross","expected":[4,[4]],"passed":true},{"actual":[9,[1,5,3]],"check":"regression: zero floor stage","expected":[8,[0,5,3]],"passed":false},{"actual":[3,[0,0,0,0,0,3,0,0]],"check":"variant scenario 1","expected":[3,[0,0,0,0,0,3,0,0]],"passed":true},{"actual":[14,[4,3,1,3,3]],"check":"variant scenario 2","expected":[13,[4,3,0,3,3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control scratch par\", \"actual\": [4, [2, 2]], \"expected\": [4, [2, 2]], \"passed\": true}, {\"check\": \"boundary stroke index equals remainder\", \"actual\": [3, [2, 1]], \"expected\": [3, [2, 1]], \"passed\": true}, {\"check\": \"boundary second shot above 18\", \"actual\": [3, [2, 1]], \"expected\": [3, [2, 1]], \"passed\": true}, {\"check\": \"boundary plus handicap\", \"actual\": [3, [1, 2]], \"expected\": [3, [1, 2]], \"passed\": true}, {\"check\": \"control blob hole\", \"actual\": [1, [1, 0]], \"expected\": [0, [0, 0]], \"passed\": false}, {\"check\": \"control net albatross\", \"actual\": [4, [4]], \"expected\": [4, [4]], \"passed\": true}, {\"check\": \"regression: zero floor stage\", \"actual\": [9, [1, 5, 3]], \"expected\": [8, [0, 5, 3]], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [3, [0, 0, 0, 0, 0, 3, 0, 0]], \"expected\": [3, [0, 0, 0, 0, 0, 3, 0, 0]], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [14, [4, 3, 1, 3, 3]], \"expected\": [13, [4, 3, 0, 3, 3]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.313,"exit_code":0,"observations":[{"actual":[4,[2,2]],"check":"control scratch par","expected":[4,[2,2]],"passed":true},{"actual":[3,[2,1]],"check":"boundary stroke index equals remainder","expected":[3,[2,1]],"passed":true},{"actual":[3,[2,1]],"check":"boundary second shot above 18","expected":[3,[2,1]],"passed":true},{"actual":[3,[1,2]],"check":"boundary plus handicap","expected":[3,[1,2]],"passed":true},{"actual":[0,[0,0]],"check":"control blob hole","expected":[0,[0,0]],"passed":true},{"actual":[4,[4]],"check":"control net albatross","expected":[4,[4]],"passed":true},{"actual":[8,[0,5,3]],"check":"regression: zero floor stage","expected":[8,[0,5,3]],"passed":true},{"actual":[3,[0,0,0,0,0,3,0,0]],"check":"variant scenario 1","expected":[3,[0,0,0,0,0,3,0,0]],"passed":true},{"actual":[13,[4,3,0,3,3]],"check":"variant scenario 2","expected":[13,[4,3,0,3,3]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control scratch par\", \"actual\": [4, [2, 2]], \"expected\": [4, [2, 2]], \"passed\": true}, {\"check\": \"boundary stroke index equals remainder\", \"actual\": [3, [2, 1]], \"expected\": [3, [2, 1]], \"passed\": true}, {\"check\": \"boundary second shot above 18\", \"actual\": [3, [2, 1]], \"expected\": [3, [2, 1]], \"passed\": true}, {\"check\": \"boundary plus handicap\", \"actual\": [3, [1, 2]], \"expected\": [3, [1, 2]], \"passed\": true}, {\"check\": \"control blob hole\", \"actual\": [0, [0, 0]], \"expected\": [0, [0, 0]], \"passed\": true}, {\"check\": \"control net albatross\", \"actual\": [4, [4]], \"expected\": [4, [4]], \"passed\": true}, {\"check\": \"regression: zero floor stage\", \"actual\": [8, [0, 5, 3]], \"expected\": [8, [0, 5, 3]], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [3, [0, 0, 0, 0, 0, 3, 0, 0]], \"expected\": [3, [0, 0, 0, 0, 0, 3, 0, 0]], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [13, [4, 3, 0, 3, 3]], \"expected\": [13, [4, 3, 0, 3, 3]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}