{"abstract":"A deciding set is not closed at 15-13 and continues to 25.","category":"Sports scoring and tiebreakers","checks":9,"contract":"Best-of-five volleyball with rally scoring. rallies is a string of rally winners (A/B). Sets 1-4 are played to 25 and set 5 to 15, always win by two with no cap. The rally winner serves next; when the receiving team wins a rally (side-out) that team rotates once (rotation counter modulo 6). At the start of each set both rotation counters reset to 0 and the first server is first_serve in odd-numbered sets and the other team in even-numbered sets. Return [completed and current set scores as [a, b], match winner or None, rotation counters].","contract_signature":"rallies, first_serve","evaluation_group":"w2-sports-scoring-volleyball-rally-rotation","failed_approach":"Switching to 15 points whenever a team has two sets shortens the fourth set too.","family":"w2-sports-scoring-volleyball-rally-rotation-deciding-set-target","id":"FA-83906","implementations":{"attempt":{"sha256":"686d9f5c9dbe3abf1db2e04c24ad44eb91eda044cdbd643807806937a10ada09","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rallies, first_serve):\n    won = {'A': 0, 'B': 0}\n    sets = []\n    a = b = 0\n    set_index = 0\n    server = first_serve\n    rot = {'A': 0, 'B': 0}\n    for r in rallies:\n        if r == 'A':\n            a += 1\n        else:\n            b += 1\n        if r != server:\n            rot[r] = (rot[r] + 1) % 6\n            server = r\n        target = 15 if won['A'] == 2 or won['B'] == 2 else 25\n        if max(a, b) >= target and abs(a - b) >= 2:\n            w = 'A' if a > b else 'B'\n            won[w] += 1\n            sets.append([a, b])\n            if won[w] == 3:\n                return [sets, w, rot]\n            a = b = 0\n            set_index += 1\n            rot = {'A': 0, 'B': 0}\n            server = first_serve if set_index % 2 == 0 else ('B' if first_serve == 'A' else 'A')\n    return [sets + ([[a, b]] if a or b else []), None, rot]\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 first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('ABAABAAAAABBBABBAAAAABBBAAABBBABB', 'A'),\n   [[[18, 15]], None, {'A': 0, 'B': 1}]),\n  ('variant scenario 2', ('AAABBAAAABBAAABABBAAAAA', 'A'), [[[16, 7]], None, {'A': 4, 'B': 4}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAAAABAAAAAAAAABABAAAAAAABABABAABBAAABBABABAAAAAAAAAAABBAAABAAAABABABBBBAAAAAABBBBAAAAAAAABBBABAAAAABBAAAABBABABBAABBBAAA',\n    'A'),\n   [[[25, 5], [25, 10], [25, 16]], 'A', {'A': 1, 'B': 1}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('BAABAAAABAABAAABBBAAABBAAAAAAAAAABAABAAAABABAAABBABBBA', 'B'),\n   [[[25, 10], [11, 8]], None, {'A': 5, 'B': 5}]),\n  ('variant scenario 2',\n   ('AABAAAABABAAAAAAABAAABABBBABBBBABBBAABBAAABBBBBAAAAABABBABABBAAAABABB', 'B'),\n   [[[25, 17], [13, 14]], None, {'A': 0, 'B': 1}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AABAAABAAAABAAAABAAAAABBAAABABABABABABAAAABAABBBBABAABBAABAABBBAAAAAAAAABBAAABABBABBABABAAAAAAAAAAB',\n    'A'),\n   [[[25, 10], [25, 16], [15, 8]], None, {'A': 5, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('BABAAABABAABAAAAABAAAAABABABABBABABBBABABBAAABBBAABBAABAABABAAAABAAAABABBAABAAAABAABAAAAABAABABBAAAAAAABBBBBBAAAAAABBBAAABBAAAABBBBABBBBBBABBBAAABAAABBBAB',\n    'A'),\n   [[[25, 18], [25, 14], [25, 14]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 2',\n   ('BAAAABAAAAAAAAABAABAAAABBAAABAAAAAAAAABBBAAAABAAABABBAABABABAABAAAAAAAAABABBBABBBAABAAAAAAABBABBABABBAABAAA',\n    'A'),\n   [[[25, 7], [25, 11], [23, 16]], None, {'A': 3, 'B': 3}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('BAAABABBBBBAAAABABAABAAAAAABAAABBBBAAAAABABABABAAAABAABAABAABBAABAAAAAAAAAAAABBBAABAAAAAABAAABAAAAABBAABAAABBBBABABBABABAAABBABAABBBAAAABBBAABBAAABAABABBBAAABBBABAAAABBAAAABBBBBABA',\n    'A'),\n   [[[25, 15], [25, 10], [25, 14]], 'A', {'A': 2, 'B': 2}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('ABABAAAAAAAABBAABAABAABBAAAABABAAABAAAABBABABBBBAABABABABABBABBAABBBBABBAABA', 'A'),\n   [[[25, 11], [18, 22]], None, {'A': 1, 'B': 0}]),\n  ('variant scenario 2',\n   ('AABBAABBABAAAAAABABBBABBBBBBBAAAAABAAAAABABABBAABAABBAAAAAAABABAAABBBBBABAAAAAAAAAABAABAABAAAAAAABBAABABBAABABABBBBAAABABAAAAAAABABBBBBBBAAAAAAAABBBBAAAAABAAAABBBBAAAAABABAAAABABBBBB',\n    'B'),\n   [[[25, 19], [25, 13], [25, 16]], 'A', {'A': 0, 'B': 5}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAABAAAAAAAAAAAAAAABBAAABAAABABABAAAABABBBAABAAAAAAABBAAABABAABBABAABAAAABBAAABAABABAAAAAAAAABAABBAAAAAAABAABAAABAABBABABABABAAABABAABBAAABBABABAAAAAAAABAAAAAAAAABAABABABAAAABAAABAABABAAAAAAAABAAABBBABAABBA',\n    'A'),\n   [[[25, 4], [25, 15], [25, 9]], 'A', {'A': 1, 'B': 1}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1', ('AAAAAAAAABABAABBBBAAAA', 'A'), [[[16, 6]], None, {'A': 3, 'B': 3}]),\n  ('variant scenario 2',\n   ('AAAABAABAAABABBAAAAAAAABAABAABAAABAABAABBABAAABBABBAAAABABBAAABBABABAAABBAAAAABAABABAB', 'A'),\n   [[[25, 8], [25, 18], [6, 4]], None, {'A': 3, 'B': 4}])]]\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":"8ebfd7688e2653c572f6f13b8568243fd39f928eea9abede4ce553733b2b9635","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(rallies, first_serve):\n    won = {'A': 0, 'B': 0}\n    sets = []\n    a = b = 0\n    set_index = 0\n    server = first_serve\n    rot = {'A': 0, 'B': 0}\n    for r in rallies:\n        if r == 'A':\n            a += 1\n        else:\n            b += 1\n        if r != server:\n            rot[r] = (rot[r] + 1) % 6\n            server = r\n        target = 15 if set_index == 5 else 25\n        if max(a, b) >= target and abs(a - b) >= 2:\n            w = 'A' if a > b else 'B'\n            won[w] += 1\n            sets.append([a, b])\n            if won[w] == 3:\n                return [sets, w, rot]\n            a = b = 0\n            set_index += 1\n            rot = {'A': 0, 'B': 0}\n            server = first_serve if set_index % 2 == 0 else ('B' if first_serve == 'A' else 'A')\n    return [sets + ([[a, b]] if a or b else []), None, rot]\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 first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('ABAABAAAAABBBABBAAAAABBBAAABBBABB', 'A'),\n   [[[18, 15]], None, {'A': 0, 'B': 1}]),\n  ('variant scenario 2', ('AAABBAAAABBAAABABBAAAAA', 'A'), [[[16, 7]], None, {'A': 4, 'B': 4}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAAAABAAAAAAAAABABAAAAAAABABABAABBAAABBABABAAAAAAAAAAABBAAABAAAABABABBBBAAAAAABBBBAAAAAAAABBBABAAAAABBAAAABBABABBAABBBAAA',\n    'A'),\n   [[[25, 5], [25, 10], [25, 16]], 'A', {'A': 1, 'B': 1}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('BAABAAAABAABAAABBBAAABBAAAAAAAAAABAABAAAABABAAABBABBBA', 'B'),\n   [[[25, 10], [11, 8]], None, {'A': 5, 'B': 5}]),\n  ('variant scenario 2',\n   ('AABAAAABABAAAAAAABAAABABBBABBBBABBBAABBAAABBBBBAAAAABABBABABBAAAABABB', 'B'),\n   [[[25, 17], [13, 14]], None, {'A': 0, 'B': 1}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AABAAABAAAABAAAABAAAAABBAAABABABABABABAAAABAABBBBABAABBAABAABBBAAAAAAAAABBAAABABBABBABABAAAAAAAAAAB',\n    'A'),\n   [[[25, 10], [25, 16], [15, 8]], None, {'A': 5, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('BABAAABABAABAAAAABAAAAABABABABBABABBBABABBAAABBBAABBAABAABABAAAABAAAABABBAABAAAABAABAAAAABAABABBAAAAAAABBBBBBAAAAAABBBAAABBAAAABBBBABBBBBBABBBAAABAAABBBAB',\n    'A'),\n   [[[25, 18], [25, 14], [25, 14]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 2',\n   ('BAAAABAAAAAAAAABAABAAAABBAAABAAAAAAAAABBBAAAABAAABABBAABABABAABAAAAAAAAABABBBABBBAABAAAAAAABBABBABABBAABAAA',\n    'A'),\n   [[[25, 7], [25, 11], [23, 16]], None, {'A': 3, 'B': 3}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('BAAABABBBBBAAAABABAABAAAAAABAAABBBBAAAAABABABABAAAABAABAABAABBAABAAAAAAAAAAAABBBAABAAAAAABAAABAAAAABBAABAAABBBBABABBABABAAABBABAABBBAAAABBBAABBAAABAABABBBAAABBBABAAAABBAAAABBBBBABA',\n    'A'),\n   [[[25, 15], [25, 10], [25, 14]], 'A', {'A': 2, 'B': 2}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1',\n   ('ABABAAAAAAAABBAABAABAABBAAAABABAAABAAAABBABABBBBAABABABABABBABBAABBBBABBAABA', 'A'),\n   [[[25, 11], [18, 22]], None, {'A': 1, 'B': 0}]),\n  ('variant scenario 2',\n   ('AABBAABBABAAAAAABABBBABBBBBBBAAAAABAAAAABABABBAABAABBAAAAAAABABAAABBBBBABAAAAAAAAAABAABAABAAAAAAABBAABABBAABABABBBBAAABABAAAAAAABABBBBBBBAAAAAAAABBBBAAAAABAAAABBBBAAAAABABAAAABABBBBB',\n    'B'),\n   [[[25, 19], [25, 13], [25, 16]], 'A', {'A': 0, 'B': 5}])],\n [('control first rally held by server', ('A', 'A'), [[[1, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary side-out rotates receiver', ('B', 'A'), [[[0, 1]], None, {'A': 0, 'B': 1}]),\n  ('control clean set', ('AAAAAAAAAAAAAAAAAAAAAAAAA', 'A'), [[[25, 0]], None, {'A': 0, 'B': 0}]),\n  ('boundary second set served by other team',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAA', 'A'),\n   [[[25, 0], [1, 0]], None, {'A': 1, 'B': 0}]),\n  ('boundary deuce in set',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABAA', 'A'),\n   [[[26, 24]], None, {'A': 0, 'B': 0}]),\n  ('control straight-sets match',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'B'),\n   [[[25, 0], [25, 0], [25, 0]], 'A', {'A': 1, 'B': 0}]),\n  ('regression: deciding set target',\n   ('AAAABAAAAAAAAAAAAAAABBAAABAAABABABAAAABABBBAABAAAAAAABBAAABABAABBABAABAAAABBAAABAABABAAAAAAAAABAABBAAAAAAABAABAAABAABBABABABABAAABABAABBAAABBABABAAAAAAAABAAAAAAAAABAABABABAAAABAAABAABABAAAAAAAABAAABBBABAABBA',\n    'A'),\n   [[[25, 4], [25, 15], [25, 9]], 'A', {'A': 1, 'B': 1}]),\n  ('regression: deciding set target',\n   ('AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBAAAAAAAAAAAAAAA',\n    'A'),\n   [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], 'A', {'A': 0, 'B': 0}]),\n  ('variant scenario 1', ('AAAAAAAAABABAABBBBAAAA', 'A'), [[[16, 6]], None, {'A': 3, 'B': 3}]),\n  ('variant scenario 2',\n   ('AAAABAABAAABABBAAAAAAAABAABAABAAABAABAABBABAAABBABBAAAABABBAAABBABABAAABBAAAAABAABABAB', 'A'),\n   [[[25, 8], [25, 18], [6, 4]], None, {'A': 3, 'B': 4}])]]\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-volleyball-rally-rotation-deciding-set-target","generated_at":"2026-09-29T14:50:25.904878+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Scoresheet apps track rotations to flag out-of-rotation faults and must reset them each set.","root_cause":"The short-set check compares the zero-based set index with 5 instead of 4.","sha256":"4fc51449ba62e14891299a88b20e00df6208310914cfcc8ce57a531ff6b50b85","title":"Fifth set played to 25 points · 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.554,"exit_code":1,"observations":[{"actual":[[[1,0]],null,{"A":0,"B":0}],"check":"control first rally held by server","expected":[[[1,0]],null,{"A":0,"B":0}],"passed":true},{"actual":[[[0,1]],null,{"A":0,"B":1}],"check":"boundary side-out rotates receiver","expected":[[[0,1]],null,{"A":0,"B":1}],"passed":true},{"actual":[[[25,0]],null,{"A":0,"B":0}],"check":"control clean set","expected":[[[25,0]],null,{"A":0,"B":0}],"passed":true},{"actual":[[[25,0],[1,0]],null,{"A":1,"B":0}],"check":"boundary second set served by other team","expected":[[[25,0],[1,0]],null,{"A":1,"B":0}],"passed":true},{"actual":[[[26,24]],null,{"A":0,"B":0}],"check":"boundary deuce in set","expected":[[[26,24]],null,{"A":0,"B":0}],"passed":true},{"actual":[[[25,0],[25,0],[15,0]],"A",{"A":1,"B":0}],"check":"control straight-sets match","expected":[[[25,0],[25,0],[25,0]],"A",{"A":1,"B":0}],"passed":false},{"actual":[[[25,0],[0,25],[25,0],[0,15],[15,10]],"A",{"A":1,"B":1}],"check":"regression: deciding set target","expected":[[[25,0],[0,25],[25,0],[0,25],[15,0]],"A",{"A":0,"B":0}],"passed":false},{"actual":[[[18,15]],null,{"A":0,"B":1}],"check":"variant scenario 1","expected":[[[18,15]],null,{"A":0,"B":1}],"passed":true},{"actual":[[[16,7]],null,{"A":4,"B":4}],"check":"variant scenario 2","expected":[[[16,7]],null,{"A":4,"B":4}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control first rally held by server\", \"actual\": [[[1, 0]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[1, 0]], null, {\"A\": 0, \"B\": 0}], \"passed\": true}, {\"check\": \"boundary side-out rotates receiver\", \"actual\": [[[0, 1]], null, {\"A\": 0, \"B\": 1}], \"expected\": [[[0, 1]], null, {\"A\": 0, \"B\": 1}], \"passed\": true}, {\"check\": \"control clean set\", \"actual\": [[[25, 0]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[25, 0]], null, {\"A\": 0, \"B\": 0}], \"passed\": true}, {\"check\": \"boundary second set served by other team\", \"actual\": [[[25, 0], [1, 0]], null, {\"A\": 1, \"B\": 0}], \"expected\": [[[25, 0], [1, 0]], null, {\"A\": 1, \"B\": 0}], \"passed\": true}, {\"check\": \"boundary deuce in set\", \"actual\": [[[26, 24]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[26, 24]], null, {\"A\": 0, \"B\": 0}], \"passed\": true}, {\"check\": \"control straight-sets match\", \"actual\": [[[25, 0], [25, 0], [15, 0]], \"A\", {\"A\": 1, \"B\": 0}], \"expected\": [[[25, 0], [25, 0], [25, 0]], \"A\", {\"A\": 1, \"B\": 0}], \"passed\": false}, {\"check\": \"regression: deciding set target\", \"actual\": [[[25, 0], [0, 25], [25, 0], [0, 15], [15, 10]], \"A\", {\"A\": 1, \"B\": 1}], \"expected\": [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], \"A\", {\"A\": 0, \"B\": 0}], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[[18, 15]], null, {\"A\": 0, \"B\": 1}], \"expected\": [[[18, 15]], null, {\"A\": 0, \"B\": 1}], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[[16, 7]], null, {\"A\": 4, \"B\": 4}], \"expected\": [[[16, 7]], null, {\"A\": 4, \"B\": 4}], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.271,"exit_code":1,"observations":[{"actual":[[[1,0]],null,{"A":0,"B":0}],"check":"control first rally held by server","expected":[[[1,0]],null,{"A":0,"B":0}],"passed":true},{"actual":[[[0,1]],null,{"A":0,"B":1}],"check":"boundary side-out rotates receiver","expected":[[[0,1]],null,{"A":0,"B":1}],"passed":true},{"actual":[[[25,0]],null,{"A":0,"B":0}],"check":"control clean set","expected":[[[25,0]],null,{"A":0,"B":0}],"passed":true},{"actual":[[[25,0],[1,0]],null,{"A":1,"B":0}],"check":"boundary second set served by other team","expected":[[[25,0],[1,0]],null,{"A":1,"B":0}],"passed":true},{"actual":[[[26,24]],null,{"A":0,"B":0}],"check":"boundary deuce in set","expected":[[[26,24]],null,{"A":0,"B":0}],"passed":true},{"actual":[[[25,0],[25,0],[25,0]],"A",{"A":1,"B":0}],"check":"control straight-sets match","expected":[[[25,0],[25,0],[25,0]],"A",{"A":1,"B":0}],"passed":true},{"actual":[[[25,0],[0,25],[25,0],[0,25],[15,0]],null,{"A":0,"B":0}],"check":"regression: deciding set target","expected":[[[25,0],[0,25],[25,0],[0,25],[15,0]],"A",{"A":0,"B":0}],"passed":false},{"actual":[[[18,15]],null,{"A":0,"B":1}],"check":"variant scenario 1","expected":[[[18,15]],null,{"A":0,"B":1}],"passed":true},{"actual":[[[16,7]],null,{"A":4,"B":4}],"check":"variant scenario 2","expected":[[[16,7]],null,{"A":4,"B":4}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control first rally held by server\", \"actual\": [[[1, 0]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[1, 0]], null, {\"A\": 0, \"B\": 0}], \"passed\": true}, {\"check\": \"boundary side-out rotates receiver\", \"actual\": [[[0, 1]], null, {\"A\": 0, \"B\": 1}], \"expected\": [[[0, 1]], null, {\"A\": 0, \"B\": 1}], \"passed\": true}, {\"check\": \"control clean set\", \"actual\": [[[25, 0]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[25, 0]], null, {\"A\": 0, \"B\": 0}], \"passed\": true}, {\"check\": \"boundary second set served by other team\", \"actual\": [[[25, 0], [1, 0]], null, {\"A\": 1, \"B\": 0}], \"expected\": [[[25, 0], [1, 0]], null, {\"A\": 1, \"B\": 0}], \"passed\": true}, {\"check\": \"boundary deuce in set\", \"actual\": [[[26, 24]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[26, 24]], null, {\"A\": 0, \"B\": 0}], \"passed\": true}, {\"check\": \"control straight-sets match\", \"actual\": [[[25, 0], [25, 0], [25, 0]], \"A\", {\"A\": 1, \"B\": 0}], \"expected\": [[[25, 0], [25, 0], [25, 0]], \"A\", {\"A\": 1, \"B\": 0}], \"passed\": true}, {\"check\": \"regression: deciding set target\", \"actual\": [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], null, {\"A\": 0, \"B\": 0}], \"expected\": [[[25, 0], [0, 25], [25, 0], [0, 25], [15, 0]], \"A\", {\"A\": 0, \"B\": 0}], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[[18, 15]], null, {\"A\": 0, \"B\": 1}], \"expected\": [[[18, 15]], null, {\"A\": 0, \"B\": 1}], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[[16, 7]], null, {\"A\": 4, \"B\": 4}], \"expected\": [[[16, 7]], null, {\"A\": 4, \"B\": 4}], \"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."}}