{"abstract":"A set is closed at 25-24 or at a 27-26 cap instead of continuing until a two-point lead.","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":"Adding a two-points-over-target cap closes 27-26 sets that must continue.","family":"w2-sports-scoring-volleyball-rally-rotation-win-by-two-without-cap","id":"FA-83926","implementations":{"attempt":{"sha256":"42111831ed3afd122af8456abc3a80acbe3be41718d5fd61e98386e5e1091249","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 == 4 else 25\n        if max(a, b) >= target and (abs(a - b) >= 2 or max(a, b) >= target + 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: win by two without cap',\n   ('ABBBAABAAABAAABAABABBABAABBABBBBAAAABBBABBBAABABBAABAAAAAABBABBABAAAABBAAAABBBBAAABAABBBAB',\n    'A'),\n   [[[28, 26], [20, 16]], None, {'A': 2, 'B': 2}]),\n  ('variant scenario 1',\n   ('AABBBAABAABAAAAABAABBABBBBBBAABBBBAAAAAAABABABBBBBABBBBBABAAABABABAAABBABAABABBAAABAABABBAA',\n    'B'),\n   [[[25, 20], [22, 24]], None, {'A': 1, 'B': 1}]),\n  ('variant scenario 2',\n   ('AAAABBBBBBABABABABAAAABAABAABBBAAAAABAAABAABBAAABAAABBAAABBABBAAAAA', 'A'),\n   [[[25, 17], [16, 9]], None, {'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: win by two without cap',\n   ('BAAABBBAAABABABBAABABAAAAABBBBABABBBAAABABBABBBAABAAAAAAAAAAAABBAABAAAA', 'A'),\n   [[[27, 25], [16, 3]], None, {'A': 3, 'B': 2}]),\n  ('regression: win by two without cap',\n   ('BAAAAABAABBABABAABBAAAABAAAABAAAABBAABBABBABAAAAABBBBBBAABBAABAABBAAABBBAAABBBAAAABBAABABAAABABABBAAAAAABABABA',\n    'B'),\n   [[[25, 12], [28, 26], [12, 7]], None, {'A': 1, 'B': 0}]),\n  ('variant scenario 1',\n   ('ABAABBBAAAAABAABBAAAABBBAAAABABAABAAAAAAABBAABBAAAAAAABA', 'B'),\n   [[[25, 13], [13, 5]], None, {'A': 3, 'B': 3}]),\n  ('variant scenario 2',\n   ('ABBAABBABBAAABAAAABBABABAAABABBAABBAAABBABAAABABAAABABABAAAAAABBBABBBABBABBAAAABBABAABAABBAAAAABBABBBABAABAAABBABBBBBBABBAABBAAAAABABAAABAAA',\n    'A'),\n   [[[25, 19], [25, 19], [25, 23]], 'A', {'A': 5, '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: win by two without cap',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABABABA', 'A'),\n   [[[27, 26]], None, {'A': 2, 'B': 2}]),\n  ('variant scenario 1',\n   ('ABBAABAAAAAAAABBBBABBBBBBAAABBAAAAAAABAABBBBABAABBBAAAAAAAAAAABBABBBBABAAABABABAAAABABBBAAAAABAABABABAAAAAABABBAABBBBAAABABBBBBAAAAB',\n    'A'),\n   [[[25, 20], [25, 15], [25, 20]], 'A', {'A': 4, 'B': 4}]),\n  ('variant scenario 2',\n   ('AAAAABAAAAAAABAAAAAABABAABAAAAAAABAAABAAAAABBABABBAABAABABABABBBBABAABAAABAABAAAABABAAAAABBBBBBABAAAAAABABAAAABBAAAA',\n    'A'),\n   [[[25, 5], [25, 17], [25, 13]], 'A', {'A': 2, 'B': 2}])],\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: win by two without cap',\n   ('ABAAAABBBBBBAAAAABABABABBABBAABAAAABBBAAAABAAAAABAAABAABBAAABAAAAABAAAAAABAABABBABBABAAAAABBBAAABBBAABABAAABBABBBABABABBAAABABBBABAABABA',\n    'A'),\n   [[[25, 19], [25, 7], [25, 27], [5, 3]], None, {'A': 4, 'B': 3}]),\n  ('regression: win by two without cap',\n   ('AAAAAABBAABBAAABABABAABAABAAAABBBBBBABBABABBAAAABBAABAAABAAABAAAABBBBAABABABABBAAAAAAABABABAAABBBBBBBAAAABBABBABABBBABAABAAABBAABABAABABAAAABAAAAAABABA',\n    'A'),\n   [[[25, 20], [25, 14], [28, 26]], 'A', {'A': 3, 'B': 3}]),\n  ('variant scenario 1',\n   ('ABBBAAABAABBAABAABAABABBABBAAABBBBAABAAABAABBAABBAAABBAABBAB', 'A'),\n   [[[25, 21], [7, 7]], None, {'A': 4, 'B': 4}]),\n  ('variant scenario 2',\n   ('BAAAABBAAABBAAAAAAAAABABABABBBBAAABBABABBBAAABAAABAABABAABAABBBBBBABBBAAAABAAAAAAAABBABABABBBABAAAAABABABABAAABAABABAAAAAAABAABAABAAAAAABABBBABBBBAAAABAAAAAAAABBABABAAAAABABB',\n    'A'),\n   [[[25, 18], [25, 15], [25, 15]], 'A', {'A': 0, 'B': 0}])],\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: win by two without cap',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABABABA', 'A'),\n   [[[27, 26]], None, {'A': 2, 'B': 2}]),\n  ('variant scenario 1',\n   ('BAAAAAABABBABABABBABBBABABAAAABABABBBABABBABAABABAAAAAABBBBAAAAAABAAABAABABAAABBBBBABBBBABBBAABABABAAAAABABBBABBAAAABAAAAAABBBAAABABAABABAAAABAAAABBABAAAAAAAAAABBABBAAABBAAABBAAABAAAAABABAAAAAABBABAABAABBABAAAA',\n    'A'),\n   [[[25, 23], [25, 21], [25, 15]], 'A', {'A': 4, 'B': 4}]),\n  ('variant scenario 2',\n   ('ABAAAAAAABAABAAABABAAABAAAAABBAAABAABBBBAAABAABAAAABAABBABABABAAAAAAAAAABAAAABAAABBBAABBAABAAAAAABAAAAAABAAAABABBBAAAABBAAABAAABAAAABBBABAAAABABBBAAB',\n    'B'),\n   [[[25, 8], [25, 13], [25, 10]], 'A', {'A': 2, 'B': 1}])]]\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":"88e9d5ed93fcee908793db8b27d3cdc0abd39847ef104e18d5035349a327058a","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 == 4 else 25\n        if max(a, b) >= target and abs(a - b) >= 1:\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: win by two without cap',\n   ('ABBBAABAAABAAABAABABBABAABBABBBBAAAABBBABBBAABABBAABAAAAAABBABBABAAAABBAAAABBBBAAABAABBBAB',\n    'A'),\n   [[[28, 26], [20, 16]], None, {'A': 2, 'B': 2}]),\n  ('variant scenario 1',\n   ('AABBBAABAABAAAAABAABBABBBBBBAABBBBAAAAAAABABABBBBBABBBBBABAAABABABAAABBABAABABBAAABAABABBAA',\n    'B'),\n   [[[25, 20], [22, 24]], None, {'A': 1, 'B': 1}]),\n  ('variant scenario 2',\n   ('AAAABBBBBBABABABABAAAABAABAABBBAAAAABAAABAABBAAABAAABBAAABBABBAAAAA', 'A'),\n   [[[25, 17], [16, 9]], None, {'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: win by two without cap',\n   ('BAAABBBAAABABABBAABABAAAAABBBBABABBBAAABABBABBBAABAAAAAAAAAAAABBAABAAAA', 'A'),\n   [[[27, 25], [16, 3]], None, {'A': 3, 'B': 2}]),\n  ('regression: win by two without cap',\n   ('BAAAAABAABBABABAABBAAAABAAAABAAAABBAABBABBABAAAAABBBBBBAABBAABAABBAAABBBAAABBBAAAABBAABABAAABABABBAAAAAABABABA',\n    'B'),\n   [[[25, 12], [28, 26], [12, 7]], None, {'A': 1, 'B': 0}]),\n  ('variant scenario 1',\n   ('ABAABBBAAAAABAABBAAAABBBAAAABABAABAAAAAAABBAABBAAAAAAABA', 'B'),\n   [[[25, 13], [13, 5]], None, {'A': 3, 'B': 3}]),\n  ('variant scenario 2',\n   ('ABBAABBABBAAABAAAABBABABAAABABBAABBAAABBABAAABABAAABABABAAAAAABBBABBBABBABBAAAABBABAABAABBAAAAABBABBBABAABAAABBABBBBBBABBAABBAAAAABABAAABAAA',\n    'A'),\n   [[[25, 19], [25, 19], [25, 23]], 'A', {'A': 5, '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: win by two without cap',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABABABA', 'A'),\n   [[[27, 26]], None, {'A': 2, 'B': 2}]),\n  ('variant scenario 1',\n   ('ABBAABAAAAAAAABBBBABBBBBBAAABBAAAAAAABAABBBBABAABBBAAAAAAAAAAABBABBBBABAAABABABAAAABABBBAAAAABAABABABAAAAAABABBAABBBBAAABABBBBBAAAAB',\n    'A'),\n   [[[25, 20], [25, 15], [25, 20]], 'A', {'A': 4, 'B': 4}]),\n  ('variant scenario 2',\n   ('AAAAABAAAAAAABAAAAAABABAABAAAAAAABAAABAAAAABBABABBAABAABABABABBBBABAABAAABAABAAAABABAAAAABBBBBBABAAAAAABABAAAABBAAAA',\n    'A'),\n   [[[25, 5], [25, 17], [25, 13]], 'A', {'A': 2, 'B': 2}])],\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: win by two without cap',\n   ('ABAAAABBBBBBAAAAABABABABBABBAABAAAABBBAAAABAAAAABAAABAABBAAABAAAAABAAAAAABAABABBABBABAAAAABBBAAABBBAABABAAABBABBBABABABBAAABABBBABAABABA',\n    'A'),\n   [[[25, 19], [25, 7], [25, 27], [5, 3]], None, {'A': 4, 'B': 3}]),\n  ('regression: win by two without cap',\n   ('AAAAAABBAABBAAABABABAABAABAAAABBBBBBABBABABBAAAABBAABAAABAAABAAAABBBBAABABABABBAAAAAAABABABAAABBBBBBBAAAABBABBABABBBABAABAAABBAABABAABABAAAABAAAAAABABA',\n    'A'),\n   [[[25, 20], [25, 14], [28, 26]], 'A', {'A': 3, 'B': 3}]),\n  ('variant scenario 1',\n   ('ABBBAAABAABBAABAABAABABBABBAAABBBBAABAAABAABBAABBAAABBAABBAB', 'A'),\n   [[[25, 21], [7, 7]], None, {'A': 4, 'B': 4}]),\n  ('variant scenario 2',\n   ('BAAAABBAAABBAAAAAAAAABABABABBBBAAABBABABBBAAABAAABAABABAABAABBBBBBABBBAAAABAAAAAAAABBABABABBBABAAAAABABABABAAABAABABAAAAAAABAABAABAAAAAABABBBABBBBAAAABAAAAAAAABBABABAAAAABABB',\n    'A'),\n   [[[25, 18], [25, 15], [25, 15]], 'A', {'A': 0, 'B': 0}])],\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: win by two without cap',\n   ('ABABABABABABABABABABABABABABABABABABABABABABABABABABA', 'A'),\n   [[[27, 26]], None, {'A': 2, 'B': 2}]),\n  ('variant scenario 1',\n   ('BAAAAAABABBABABABBABBBABABAAAABABABBBABABBABAABABAAAAAABBBBAAAAAABAAABAABABAAABBBBBABBBBABBBAABABABAAAAABABBBABBAAAABAAAAAABBBAAABABAABABAAAABAAAABBABAAAAAAAAAABBABBAAABBAAABBAAABAAAAABABAAAAAABBABAABAABBABAAAA',\n    'A'),\n   [[[25, 23], [25, 21], [25, 15]], 'A', {'A': 4, 'B': 4}]),\n  ('variant scenario 2',\n   ('ABAAAAAAABAABAAABABAAABAAAAABBAAABAABBBBAAABAABAAAABAABBABABABAAAAAAAAAABAAAABAAABBBAABBAABAAAAAABAAAAAABAAAABABBBAAAABBAAABAAABAAAABBBABAAAABABBBAAB',\n    'B'),\n   [[[25, 8], [25, 13], [25, 10]], 'A', {'A': 2, 'B': 1}])]]\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-win-by-two-without-cap","generated_at":"2026-09-29T14:50:26.031226+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 set completion test only requires a one-point lead.","sha256":"80ca100967916b841e9af450f4b58c66289e9d2229a4400b2cf0bd9f5bbc2483","title":"Volleyball set capped like badminton · 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.609,"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":[[[27,26],[21,16]],null,{"A":2,"B":2}],"check":"regression: win by two without cap","expected":[[[28,26],[20,16]],null,{"A":2,"B":2}],"passed":false},{"actual":[[[25,20],[22,24]],null,{"A":1,"B":1}],"check":"variant scenario 1","expected":[[[25,20],[22,24]],null,{"A":1,"B":1}],"passed":true},{"actual":[[[25,17],[16,9]],null,{"A":0,"B":5}],"check":"variant scenario 2","expected":[[[25,17],[16,9]],null,{"A":0,"B":5}],"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: win by two without cap\", \"actual\": [[[27, 26], [21, 16]], null, {\"A\": 2, \"B\": 2}], \"expected\": [[[28, 26], [20, 16]], null, {\"A\": 2, \"B\": 2}], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[[25, 20], [22, 24]], null, {\"A\": 1, \"B\": 1}], \"expected\": [[[25, 20], [22, 24]], null, {\"A\": 1, \"B\": 1}], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[[25, 17], [16, 9]], null, {\"A\": 0, \"B\": 5}], \"expected\": [[[25, 17], [16, 9]], null, {\"A\": 0, \"B\": 5}], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.679,"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":[[[25,24],[1,0]],null,{"A":1,"B":0}],"check":"boundary deuce in set","expected":[[[26,24]],null,{"A":0,"B":0}],"passed":false},{"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":[[[24,25],[24,17]],null,{"A":3,"B":3}],"check":"regression: win by two without cap","expected":[[[28,26],[20,16]],null,{"A":2,"B":2}],"passed":false},{"actual":[[[25,20],[22,24]],null,{"A":1,"B":1}],"check":"variant scenario 1","expected":[[[25,20],[22,24]],null,{"A":1,"B":1}],"passed":true},{"actual":[[[25,17],[16,9]],null,{"A":0,"B":5}],"check":"variant scenario 2","expected":[[[25,17],[16,9]],null,{"A":0,"B":5}],"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\": [[[25, 24], [1, 0]], null, {\"A\": 1, \"B\": 0}], \"expected\": [[[26, 24]], null, {\"A\": 0, \"B\": 0}], \"passed\": false}, {\"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: win by two without cap\", \"actual\": [[[24, 25], [24, 17]], null, {\"A\": 3, \"B\": 3}], \"expected\": [[[28, 26], [20, 16]], null, {\"A\": 2, \"B\": 2}], \"passed\": false}, {\"check\": \"variant scenario 1\", \"actual\": [[[25, 20], [22, 24]], null, {\"A\": 1, \"B\": 1}], \"expected\": [[[25, 20], [22, 24]], null, {\"A\": 1, \"B\": 1}], \"passed\": true}, {\"check\": \"variant scenario 2\", \"actual\": [[[25, 17], [16, 9]], null, {\"A\": 0, \"B\": 5}], \"expected\": [[[25, 17], [16, 9]], null, {\"A\": 0, \"B\": 5}], \"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."}}