{"abstract":"A set that went to a tiebreak is reported as 8-6 or longer instead of 7-6.","category":"Sports scoring and tiebreakers","checks":9,"contract":"games is a string of game winners (A/B); best_of is 3 or 5. A set is won by the first player to 6 games with a lead of two, or at 7 games (7-5, or 7-6 after the tiebreak game played at 6-6). The match ends when a player has won best_of // 2 + 1 sets; later games are ignored. Return [set scores as \"a-b\" strings in A-B order, match winner or None]; an unfinished set with at least one game is appended as its current score.","contract_signature":"games, best_of","evaluation_group":"w2-sports-scoring-tennis-set-and-match","failed_approach":"Closing the set when twelve games have been played ends it at 6-6 and credits the wrong player.","family":"w2-sports-scoring-tennis-set-and-match-tiebreak-set-closure","id":"FA-83886","implementations":{"attempt":{"sha256":"54df5e172488cad5e3bae0961810bf003db73b32520bebb871ddcf62ab6cf748","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(games, best_of):\n    sets = []\n    a = b = 0\n    won = {'A': 0, 'B': 0}\n    need = best_of // 2 + 1\n    for g in games:\n        if g == 'A':\n            a += 1\n        else:\n            b += 1\n        if (max(a, b) >= 6 and abs(a - b) >= 2) or a + b == 12:\n            w = 'A' if a > b else 'B'\n            won[w] += 1\n            sets.append('%d-%d' % (a, b))\n            a = b = 0\n            if won[w] == need:\n                return [sets, w]\n    if a or b:\n        sets.append('%d-%d' % (a, b))\n    return [sets, None]\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 bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure', ('AAABAABBBAABABABABBABAA', 3), [['6-4', '7-6'], 'A']),\n  ('variant scenario 1', ('AAAAAA', 5), [['6-0'], None]),\n  ('variant scenario 2', ('AAABBBAAAABBAAAAAAAAABABAA', 3), [['6-3', '6-2'], 'A'])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure',\n   ('BAAABBBBAABABAAAABABBAB', 5),\n   [['6-7', '6-3', '0-1'], None]),\n  ('variant scenario 1', ('ABBBAABABBA', 5), [['4-6', '1-0'], None]),\n  ('variant scenario 2', ('ABABAA', 3), [['4-2'], None])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure',\n   ('AABAABBBBAABBABABAABABABABBA', 3),\n   [['6-7', '6-4', '2-3'], None]),\n  ('variant scenario 1', ('ABBABABBBABBBABAB', 5), [['3-6', '3-5'], None]),\n  ('variant scenario 2', ('BBABBAAAAABBAAABBABAABABBBAAAABAAA', 3), [['6-4', '7-6'], 'A'])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure', ('BABABABBAAABBBBBB', 3), [['6-7', '0-4'], None]),\n  ('variant scenario 1',\n   ('AABAABBBAAAAABBBBAAABABBABBBABAAABABBAAABBABABAABB', 5),\n   [['6-4', '6-4', '2-6', '6-4'], 'A']),\n  ('variant scenario 2', ('BABAABAAAAABAABAAABABBBA', 3), [['6-3', '6-2'], 'A'])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure',\n   ('BBAABABBBBAAAABABBBBABABABAABBABAAABBAAAABAB', 3),\n   [['3-6', '6-7'], 'B']),\n  ('variant scenario 1',\n   ('AAAAABBAAAABBABBBBABAAAAABBAAAAABBAAAA', 5),\n   [['6-2', '4-6', '6-1', '6-4'], 'A']),\n  ('variant scenario 2',\n   ('BABABBAAAAAABABAAAABAAAABAAABAABBBABAAABBBAABABABAAAB', 5),\n   [['6-4', '6-2', '6-2'], 'A'])]]\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":"9d20d22879c2bb517fbfa460d07d8b99a8a6fe50a1a34f97c2256c0a5f848c25","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(games, best_of):\n    sets = []\n    a = b = 0\n    won = {'A': 0, 'B': 0}\n    need = best_of // 2 + 1\n    for g in games:\n        if g == 'A':\n            a += 1\n        else:\n            b += 1\n        if (max(a, b) >= 6 and abs(a - b) >= 2):\n            w = 'A' if a > b else 'B'\n            won[w] += 1\n            sets.append('%d-%d' % (a, b))\n            a = b = 0\n            if won[w] == need:\n                return [sets, w]\n    if a or b:\n        sets.append('%d-%d' % (a, b))\n    return [sets, None]\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 bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure', ('AAABAABBBAABABABABBABAA', 3), [['6-4', '7-6'], 'A']),\n  ('variant scenario 1', ('AAAAAA', 5), [['6-0'], None]),\n  ('variant scenario 2', ('AAABBBAAAABBAAAAAAAAABABAA', 3), [['6-3', '6-2'], 'A'])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure',\n   ('BAAABBBBAABABAAAABABBAB', 5),\n   [['6-7', '6-3', '0-1'], None]),\n  ('variant scenario 1', ('ABBBAABABBA', 5), [['4-6', '1-0'], None]),\n  ('variant scenario 2', ('ABABAA', 3), [['4-2'], None])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure',\n   ('AABAABBBBAABBABABAABABABABBA', 3),\n   [['6-7', '6-4', '2-3'], None]),\n  ('variant scenario 1', ('ABBABABBBABBBABAB', 5), [['3-6', '3-5'], None]),\n  ('variant scenario 2', ('BBABBAAAAABBAAABBABAABABBBAAAABAAA', 3), [['6-4', '7-6'], 'A'])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure', ('BABABABBAAABBBBBB', 3), [['6-7', '0-4'], None]),\n  ('variant scenario 1',\n   ('AABAABBBAAAAABBBBAAABABBABBBABAAABABBAAABBABABAABB', 5),\n   [['6-4', '6-4', '2-6', '6-4'], 'A']),\n  ('variant scenario 2', ('BABAABAAAAABAABAAABABBBA', 3), [['6-3', '6-2'], 'A'])],\n [('control bagel set', ('AAAAAA', 3), [['6-0'], None]),\n  ('boundary seven-five', ('AAAAABBBBBAA', 3), [['7-5'], None]),\n  ('boundary tiebreak set', ('AAAAABBBBBABB', 3), [['6-7'], None]),\n  ('control straight sets', ('AAAAAAAAAAAA', 3), [['6-0', '6-0'], 'A']),\n  ('control in-progress set', ('AAAAAAB', 3), [['6-0', '0-1'], None]),\n  ('control empty', ('', 5), [[], None]),\n  ('regression: tiebreak set closure',\n   ('BBAABABBBBAAAABABBBBABABABAABBABAAABBAAAABAB', 3),\n   [['3-6', '6-7'], 'B']),\n  ('variant scenario 1',\n   ('AAAAABBAAAABBABBBBABAAAAABBAAAAABBAAAA', 5),\n   [['6-2', '4-6', '6-1', '6-4'], 'A']),\n  ('variant scenario 2',\n   ('BABABBAAAAAABABAAAABAAAABAAABAABBBABAAABBBAABABABAAAB', 5),\n   [['6-4', '6-2', '6-2'], 'A'])]]\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-tennis-set-and-match-tiebreak-set-closure","generated_at":"2026-09-29T14:50:25.857343+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Tournament live-results feeds reconstruct set scores from game-level events.","root_cause":"The set closure test only checks for a two-game lead and never closes at seven games.","sha256":"e944837e23468943af07361c2dc1beb7554496d0ddfcf7799ed2ae16883e7747","title":"Set at six-all continues as an advantage set · 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":43.193,"exit_code":1,"observations":[{"actual":[["6-0"],null],"check":"control bagel set","expected":[["6-0"],null],"passed":true},{"actual":[["7-5"],null],"check":"boundary seven-five","expected":[["7-5"],null],"passed":true},{"actual":[["6-6","0-1"],null],"check":"boundary tiebreak set","expected":[["6-7"],null],"passed":false},{"actual":[["6-0","6-0"],"A"],"check":"control straight sets","expected":[["6-0","6-0"],"A"],"passed":true},{"actual":[["6-0","0-1"],null],"check":"control in-progress set","expected":[["6-0","0-1"],null],"passed":true},{"actual":[[],null],"check":"control empty","expected":[[],null],"passed":true},{"actual":[["6-4","6-6","1-0"],null],"check":"regression: tiebreak set closure","expected":[["6-4","7-6"],"A"],"passed":false},{"actual":[["6-0"],null],"check":"variant scenario 1","expected":[["6-0"],null],"passed":true},{"actual":[["6-3","6-2"],"A"],"check":"variant scenario 2","expected":[["6-3","6-2"],"A"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control bagel set\", \"actual\": [[\"6-0\"], null], \"expected\": [[\"6-0\"], null], \"passed\": true}, {\"check\": \"boundary seven-five\", \"actual\": [[\"7-5\"], null], \"expected\": [[\"7-5\"], null], \"passed\": true}, {\"check\": \"boundary tiebreak set\", \"actual\": [[\"6-6\", \"0-1\"], null], \"expected\": [[\"6-7\"], null], \"passed\": false}, {\"check\": \"control straight sets\", \"actual\": [[\"6-0\", \"6-0\"], \"A\"], \"expected\": [[\"6-0\", \"6-0\"], \"A\"], \"passed\": true}, {\"check\": \"control in-progress set\", \"actual\": [[\"6-0\", \"0-1\"], null], \"expected\": [[\"6-0\", \"0-1\"], null], \"passed\": true}, {\"check\": \"control empty\", \"actual\": [[], null], \"expected\": [[], null], \"passed\": true}, {\"check\": \"regression: tiebreak set closure\", \"actual\": [[\"6-4\", \"6-6\", \"1-0\"], null], \"expected\": [[\"6-4\", \"7-6\"], \"A\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[\"6-0\"], null], \"expected\": [[\"6-0\"], null], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[\"6-3\", \"6-2\"], \"A\"], \"expected\": [[\"6-3\", \"6-2\"], \"A\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.478,"exit_code":1,"observations":[{"actual":[["6-0"],null],"check":"control bagel set","expected":[["6-0"],null],"passed":true},{"actual":[["7-5"],null],"check":"boundary seven-five","expected":[["7-5"],null],"passed":true},{"actual":[["6-7"],null],"check":"boundary tiebreak set","expected":[["6-7"],null],"passed":true},{"actual":[["6-0","6-0"],"A"],"check":"control straight sets","expected":[["6-0","6-0"],"A"],"passed":true},{"actual":[["6-0","0-1"],null],"check":"control in-progress set","expected":[["6-0","0-1"],null],"passed":true},{"actual":[[],null],"check":"control empty","expected":[[],null],"passed":true},{"actual":[["6-4","7-6"],null],"check":"regression: tiebreak set closure","expected":[["6-4","7-6"],"A"],"passed":false},{"actual":[["6-0"],null],"check":"variant scenario 1","expected":[["6-0"],null],"passed":true},{"actual":[["6-3","6-2"],"A"],"check":"variant scenario 2","expected":[["6-3","6-2"],"A"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control bagel set\", \"actual\": [[\"6-0\"], null], \"expected\": [[\"6-0\"], null], \"passed\": true}, {\"check\": \"boundary seven-five\", \"actual\": [[\"7-5\"], null], \"expected\": [[\"7-5\"], null], \"passed\": true}, {\"check\": \"boundary tiebreak set\", \"actual\": [[\"6-7\"], null], \"expected\": [[\"6-7\"], null], \"passed\": true}, {\"check\": \"control straight sets\", \"actual\": [[\"6-0\", \"6-0\"], \"A\"], \"expected\": [[\"6-0\", \"6-0\"], \"A\"], \"passed\": true}, {\"check\": \"control in-progress set\", \"actual\": [[\"6-0\", \"0-1\"], null], \"expected\": [[\"6-0\", \"0-1\"], null], \"passed\": true}, {\"check\": \"control empty\", \"actual\": [[], null], \"expected\": [[], null], \"passed\": true}, {\"check\": \"regression: tiebreak set closure\", \"actual\": [[\"6-4\", \"7-6\"], null], \"expected\": [[\"6-4\", \"7-6\"], \"A\"], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[\"6-0\"], null], \"expected\": [[\"6-0\"], null], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[\"6-3\", \"6-2\"], \"A\"], \"expected\": [[\"6-3\", \"6-2\"], \"A\"], \"passed\": true}], \"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."}}