{"abstract":"An in-progress set is missing from the scoreboard, or a phantom \"0-0\" set appears after a set ends.","category":"Sports scoring and tiebreakers","checks":10,"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":"Always appending the current set adds \"0-0\" immediately after a completed set.","family":"w2-sports-scoring-tennis-set-and-match-in-progress-set-report","id":"FA-83896","implementations":{"attempt":{"sha256":"2d3726150a9dba9302a1705912865132a5e82b201234e72630fbdaf828da96d0","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 max(a, b) == 7:\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 True:\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: in progress set report', ('BAAAABAAAAAAAABA', 5), [['6-2', '6-0', '1-1'], None]),\n  ('regression: in progress set report',\n   ('ABAAAAABBBABABAABBBAAAAAA', 5),\n   [['6-1', '4-6', '6-2'], None]),\n  ('variant scenario 1', ('BBBAAABABAAAABBAAAAAABB', 5), [['7-5', '6-2', '1-2'], None]),\n  ('variant scenario 2', ('ABBAABBAAABABAABAAA', 3), [['6-4', '6-3'], '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: in progress set report',\n   ('AABBBABABABABAABBBBAAAABBABB', 3),\n   [['6-7', '6-4', '1-4'], None]),\n  ('regression: in progress set report', ('AAAAAA', 5), [['6-0'], None]),\n  ('variant scenario 1', ('ABAAAABAABAAABBBAAAABAAA', 3), [['6-2', '6-4'], 'A']),\n  ('variant scenario 2', ('AAAAB', 3), [['4-1'], 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: in progress set report',\n   ('BBBBBABBBBABBABBBBAAAABABBAABBAABAABABAAABBA', 5),\n   [['1-6', '2-6', '7-6', '7-5', '2-2'], None]),\n  ('regression: in progress set report', ('AABBABBAAAAAAABBBBBABAB', 3), [['6-4', '6-7'], None]),\n  ('variant scenario 1', ('ABABBBBABAAABBBAABAAAABBAABAAAABBA', 3), [['3-6', '6-4', '6-3'], 'A']),\n  ('variant scenario 2', ('ABBBAAABBABABABBAABAABAAAAAABBBB', 3), [['6-7', '6-4', '5-4'], 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: in progress set report', ('ABABBAAABAABBABABABB', 3), [['6-4', '4-6'], None]),\n  ('regression: in progress set report',\n   ('BBAAABABAAABAABBAABBBBABABA', 3),\n   [['6-4', '5-7', '3-2'], None]),\n  ('variant scenario 1',\n   ('AABABBABBBBAAAAABABBAAAAABAABABAAABAAABAABABBBBAA', 5),\n   [['4-6', '6-2', '6-3', '6-3'], 'A']),\n  ('variant scenario 2',\n   ('ABAABBBBBAAABAABBAABBABABBAAAAABBABAAABBAAA', 5),\n   [['3-6', '6-3', '7-5', '7-5'], '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: in progress set report', ('BAAAAAAABAABAABAB', 5), [['6-1', '6-3', '0-1'], None]),\n  ('regression: in progress set report', ('BBAAABBBAAABA', 5), [['7-6'], None]),\n  ('variant scenario 1',\n   ('BBBBABAAAAABBAABBAAABAABABBAABAABABAABABBBBBAABABABBBBAABBB', 5),\n   [['6-7', '6-3', '6-4', '4-6', '4-6'], 'B']),\n  ('variant scenario 2', ('ABBBB', 3), [['1-4'], None])]]\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":"9f753d71613f36821bbc941033c228e85aca943d4f854af84f091073d9b90bc1","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 max(a, b) == 7:\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 False:\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: in progress set report', ('BAAAABAAAAAAAABA', 5), [['6-2', '6-0', '1-1'], None]),\n  ('regression: in progress set report',\n   ('ABAAAAABBBABABAABBBAAAAAA', 5),\n   [['6-1', '4-6', '6-2'], None]),\n  ('variant scenario 1', ('BBBAAABABAAAABBAAAAAABB', 5), [['7-5', '6-2', '1-2'], None]),\n  ('variant scenario 2', ('ABBAABBAAABABAABAAA', 3), [['6-4', '6-3'], '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: in progress set report',\n   ('AABBBABABABABAABBBBAAAABBABB', 3),\n   [['6-7', '6-4', '1-4'], None]),\n  ('regression: in progress set report', ('AAAAAA', 5), [['6-0'], None]),\n  ('variant scenario 1', ('ABAAAABAABAAABBBAAAABAAA', 3), [['6-2', '6-4'], 'A']),\n  ('variant scenario 2', ('AAAAB', 3), [['4-1'], 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: in progress set report',\n   ('BBBBBABBBBABBABBBBAAAABABBAABBAABAABABAAABBA', 5),\n   [['1-6', '2-6', '7-6', '7-5', '2-2'], None]),\n  ('regression: in progress set report', ('AABBABBAAAAAAABBBBBABAB', 3), [['6-4', '6-7'], None]),\n  ('variant scenario 1', ('ABABBBBABAAABBBAABAAAABBAABAAAABBA', 3), [['3-6', '6-4', '6-3'], 'A']),\n  ('variant scenario 2', ('ABBBAAABBABABABBAABAABAAAAAABBBB', 3), [['6-7', '6-4', '5-4'], 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: in progress set report', ('ABABBAAABAABBABABABB', 3), [['6-4', '4-6'], None]),\n  ('regression: in progress set report',\n   ('BBAAABABAAABAABBAABBBBABABA', 3),\n   [['6-4', '5-7', '3-2'], None]),\n  ('variant scenario 1',\n   ('AABABBABBBBAAAAABABBAAAAABAABABAAABAAABAABABBBBAA', 5),\n   [['4-6', '6-2', '6-3', '6-3'], 'A']),\n  ('variant scenario 2',\n   ('ABAABBBBBAAABAABBAABBABABBAAAAABBABAAABBAAA', 5),\n   [['3-6', '6-3', '7-5', '7-5'], '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: in progress set report', ('BAAAAAAABAABAABAB', 5), [['6-1', '6-3', '0-1'], None]),\n  ('regression: in progress set report', ('BBAAABBBAAABA', 5), [['7-6'], None]),\n  ('variant scenario 1',\n   ('BBBBABAAAAABBAABBAAABAABABBAABAABABAABABBBBBAABABABBBBAABBB', 5),\n   [['6-7', '6-3', '6-4', '4-6', '4-6'], 'B']),\n  ('variant scenario 2', ('ABBBB', 3), [['1-4'], None])]]\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-in-progress-set-report","generated_at":"2026-09-29T14:50:25.857555+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 trailing in-progress set is never appended to the output.","sha256":"2256b4ecfd758f3f9639e0c8ed8330c4c3d7cd39816e688cf009ad3805d98e95","title":"Current set score dropped from or padded into the set list · 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":39.4,"exit_code":1,"observations":[{"actual":[["6-0","0-0"],null],"check":"control bagel set","expected":[["6-0"],null],"passed":false},{"actual":[["7-5","0-0"],null],"check":"boundary seven-five","expected":[["7-5"],null],"passed":false},{"actual":[["6-7","0-0"],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":[["0-0"],null],"check":"control empty","expected":[[],null],"passed":false},{"actual":[["6-2","6-0","1-1"],null],"check":"regression: in progress set report","expected":[["6-2","6-0","1-1"],null],"passed":true},{"actual":[["6-1","4-6","6-2","0-0"],null],"check":"regression: in progress set report","expected":[["6-1","4-6","6-2"],null],"passed":false},{"actual":[["7-5","6-2","1-2"],null],"check":"variant scenario 1","expected":[["7-5","6-2","1-2"],null],"passed":true},{"actual":[["6-4","6-3"],"A"],"check":"variant scenario 2","expected":[["6-4","6-3"],"A"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control bagel set\", \"actual\": [[\"6-0\", \"0-0\"], null], \"expected\": [[\"6-0\"], null], \"passed\": false}, {\"check\": \"boundary seven-five\", \"actual\": [[\"7-5\", \"0-0\"], null], \"expected\": [[\"7-5\"], null], \"passed\": false}, {\"check\": \"boundary tiebreak set\", \"actual\": [[\"6-7\", \"0-0\"], 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\": [[\"0-0\"], null], \"expected\": [[], null], \"passed\": false}, {\"check\": \"regression: in progress set report\", \"actual\": [[\"6-2\", \"6-0\", \"1-1\"], null], \"expected\": [[\"6-2\", \"6-0\", \"1-1\"], null], \"passed\": true}, {\"check\": \"regression: in progress set report\", \"actual\": [[\"6-1\", \"4-6\", \"6-2\", \"0-0\"], null], \"expected\": [[\"6-1\", \"4-6\", \"6-2\"], null], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[\"7-5\", \"6-2\", \"1-2\"], null], \"expected\": [[\"7-5\", \"6-2\", \"1-2\"], null], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[\"6-4\", \"6-3\"], \"A\"], \"expected\": [[\"6-4\", \"6-3\"], \"A\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.397,"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"],null],"check":"control in-progress set","expected":[["6-0","0-1"],null],"passed":false},{"actual":[[],null],"check":"control empty","expected":[[],null],"passed":true},{"actual":[["6-2","6-0"],null],"check":"regression: in progress set report","expected":[["6-2","6-0","1-1"],null],"passed":false},{"actual":[["6-1","4-6","6-2"],null],"check":"regression: in progress set report","expected":[["6-1","4-6","6-2"],null],"passed":true},{"actual":[["7-5","6-2"],null],"check":"variant scenario 1","expected":[["7-5","6-2","1-2"],null],"passed":false},{"actual":[["6-4","6-3"],"A"],"check":"variant scenario 2","expected":[["6-4","6-3"],"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\"], null], \"expected\": [[\"6-0\", \"0-1\"], null], \"passed\": false}, {\"check\": \"control empty\", \"actual\": [[], null], \"expected\": [[], null], \"passed\": true}, {\"check\": \"regression: in progress set report\", \"actual\": [[\"6-2\", \"6-0\"], null], \"expected\": [[\"6-2\", \"6-0\", \"1-1\"], null], \"passed\": false}, {\"check\": \"regression: in progress set report\", \"actual\": [[\"6-1\", \"4-6\", \"6-2\"], null], \"expected\": [[\"6-1\", \"4-6\", \"6-2\"], null], \"passed\": true}, {\"check\": \"variant scenario 1\", \"actual\": [[\"7-5\", \"6-2\"], null], \"expected\": [[\"7-5\", \"6-2\", \"1-2\"], null], \"passed\": false}, {\"check\": \"variant scenario 2\", \"actual\": [[\"6-4\", \"6-3\"], \"A\"], \"expected\": [[\"6-4\", \"6-3\"], \"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."}}