{"abstract":"The dealer receives the first batch.","category":"Card game rule engines","checks":8,"contract":"Input [players, dealer, batch_pattern, deck]. For each batch size in order, deal that many cards to each player starting left of the dealer (dealer+1) clockwise. Remaining cards form the kitty. Return [hands_by_seat, kitty].","contract_signature":"x","evaluation_group":"w2-card-game-rule-engines-deal-pattern","failed_approach":"Dealing counter-clockwise from the dealer right sends batches the wrong way round.","family":"w2-card-game-rule-engines-deal-pattern-first-recipient","id":"FA-83696","implementations":{"attempt":{"sha256":"786b4e8081353bb1edaf6aaecbdf5600e58a5f5f08b496e4a395f7523b0f2620","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    n, dealer, pattern, deck = x\n    hands = [[] for _ in range(n)]\n    pos = 0\n    for batch in pattern:\n        for k in range(1, n + 1):\n            seat = (dealer - k) % n\n            hands[seat].extend(deck[pos:pos + batch])\n            pos += batch\n    return [hands, deck[pos:]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[3, 0, [1], ['7H', '5C', '5S', '9C', 'QS', 'AS']], [[['5S'], ['7H'], ['5C']], ['9C', 'QS', 'AS']]], [[4, 1, [1, 1, 1], ['AH', '3H', '7D', 'AS', 'TD', '4C', 'TH', '4H', '5H', '6S', '3S', '4D']], [[['7D', 'TH', '3S'], ['AS', '4H', '4D'], ['AH', 'TD', '5H'], ['3H', '4C', '6S']], []]], [[2, 1, [1], ['QC', '6S', 'AH']], [[['QC'], ['6S']], ['AH']]], [[2, 1, [3, 2], ['9H', 'AH', '7S', '4D', 'KD', '3H', '5D', '7C', 'TD', 'QS']], [[['9H', 'AH', '7S', '5D', '7C'], ['4D', 'KD', '3H', 'TD', 'QS']], []]], [[5, 1, [1, 1, 1], ['9H', 'AS', '2H', 'TS', 'QH', '5S', 'QD', '5H', 'AH', '3H', '8H', '7C', '3S', 'JS', '2S', '6H']], [[['TS', 'AH', 'JS'], ['QH', '3H', '2S'], ['9H', '5S', '8H'], ['AS', 'QD', '7C'], ['2H', '5H', '3S']], ['6H']]], [[3, 1, [5], ['KH', 'QH', '7S', '2H', '4S', '5D', 'AC', '9S', '6H', 'AS', 'TH', '8C', 'TS', '4D', 'QC']], [[['5D', 'AC', '9S', '6H', 'AS'], ['TH', '8C', 'TS', '4D', 'QC'], ['KH', 'QH', '7S', '2H', '4S']], []]], [[3, 2, [1, 1, 1], ['5C', 'JC', '6H', '9D', '2C', 'TH', 'JD', '7D', 'TS', 'KC', 'AD', '9H', '6D']], [[['5C', '9D', 'JD'], ['JC', '2C', '7D'], ['6H', 'TH', 'TS']], ['KC', 'AD', '9H', '6D']]], [[4, 3, [2, 2, 1], ['2S', '5S', 'QD', 'QS', 'TH', 'JS', '5H', '2H', '4D', '6C', '5C', 'AD', '8D', '3S', 'TC', '4C', 'KS', '9H', 'QH', 'TD', '3H', '7C', '7D', 'JC']], [[['2S', '5S', '4D', '6C', 'KS'], ['QD', 'QS', '5C', 'AD', '9H'], ['TH', 'JS', '8D', '3S', 'QH'], ['5H', '2H', 'TC', '4C', 'TD']], ['3H', '7C', '7D', 'JC']]]], [[[4, 0, [5], ['AD', 'QD', 'TD', '9D', '3H', '9C', '4H', 'AS', 'KH', 'KD', 'KC', '5C', 'QH', 'AH', '7D', '5H', '8H', 'JD', 'TH', '2S', '4S']], [[['5H', '8H', 'JD', 'TH', '2S'], ['AD', 'QD', 'TD', '9D', '3H'], ['9C', '4H', 'AS', 'KH', 'KD'], ['KC', '5C', 'QH', 'AH', '7D']], ['4S']]], [[4, 3, [2, 2, 1], ['2S', '5S', 'QD', 'QS', 'TH', 'JS', '5H', '2H', '4D', '6C', '5C', 'AD', '8D', '3S', 'TC', '4C', 'KS', '9H', 'QH', 'TD', '3H', '7C', '7D', 'JC']], [[['2S', '5S', '4D', '6C', 'KS'], ['QD', 'QS', '5C', 'AD', '9H'], ['TH', 'JS', '8D', '3S', 'QH'], ['5H', '2H', 'TC', '4C', 'TD']], ['3H', '7C', '7D', 'JC']]], [[3, 0, [1, 1, 1], ['3S', '7C', '4H', '7H', 'AS', '2S', '8C', '7D', '5S']], [[['4H', '2S', '5S'], ['3S', '7H', '8C'], ['7C', 'AS', '7D']], []]], [[4, 2, [3, 2], ['4C', 'JC', '4H', '7D', 'QS', '5S', '2H', 'JH', '2D', '4S', 'TC', '7S', 'AH', '2C', '5C', '4D', '7H', '6C', 'KC', 'TH']], [[['7D', 'QS', '5S', '5C', '4D'], ['2H', 'JH', '2D', '7H', '6C'], ['4S', 'TC', '7S', 'KC', 'TH'], ['4C', 'JC', '4H', 'AH', '2C']], []]], [[4, 2, [2, 3], ['5D', '9D', '7C', '8D', 'AS', 'AH', 'TD', '3C', '6H', '9H', '4H', '5H', '9C', 'KD', 'AC', 'QD', '6D', '5S', 'AD', 'QH', '6S']], [[['7C', '8D', '5H', '9C', 'KD'], ['AS', 'AH', 'AC', 'QD', '6D'], ['TD', '3C', '5S', 'AD', 'QH'], ['5D', '9D', '6H', '9H', '4H']], ['6S']]], [[5, 3, [2, 2, 1], ['AS', '6S', '9C', '6C', '5S', '6D', 'JS', '2H', '8S', '5D', '8H', '2D', 'TH', 'JD', '3D', '7D', '2C', 'QH', '8C', '3S', '8D', '9S', 'AC', 'KH', '7H', '4C']], [[['9C', '6C', 'TH', 'JD', '9S'], ['5S', '6D', '3D', '7D', 'AC'], ['JS', '2H', '2C', 'QH', 'KH'], ['8S', '5D', '8C', '3S', '7H'], ['AS', '6S', '8H', '2D', '8D']], ['4C']]], [[4, 2, [5], ['QC', '8C', '6C', 'TD', '8H', 'JS', '5C', 'TH', '3H', '5D', '3S', 'JH', 'TS', 'AD', '7H', '6S', 'JD', '7D', '7S', '7C']], [[['JS', '5C', 'TH', '3H', '5D'], ['3S', 'JH', 'TS', 'AD', '7H'], ['6S', 'JD', '7D', '7S', '7C'], ['QC', '8C', '6C', 'TD', '8H']], []]], [[3, 2, [2, 3], ['2D', '7S', '2H', 'KH', '5S', '8S', '5C', 'AD', 'TC', '9C', '3D', '9D', '6C', 'KS', '4H']], [[['2D', '7S', '5C', 'AD', 'TC'], ['2H', 'KH', '9C', '3D', '9D'], ['5S', '8S', '6C', 'KS', '4H']], []]]], [[[4, 1, [1, 1, 1], ['AH', '3H', '7D', 'AS', 'TD', '4C', 'TH', '4H', '5H', '6S', '3S', '4D']], [[['7D', 'TH', '3S'], ['AS', '4H', '4D'], ['AH', 'TD', '5H'], ['3H', '4C', '6S']], []]], [[5, 3, [2, 2, 1], ['AS', '6S', '9C', '6C', '5S', '6D', 'JS', '2H', '8S', '5D', '8H', '2D', 'TH', 'JD', '3D', '7D', '2C', 'QH', '8C', '3S', '8D', '9S', 'AC', 'KH', '7H', '4C']], [[['9C', '6C', 'TH', 'JD', '9S'], ['5S', '6D', '3D', '7D', 'AC'], ['JS', '2H', '2C', 'QH', 'KH'], ['8S', '5D', '8C', '3S', '7H'], ['AS', '6S', '8H', '2D', '8D']], ['4C']]], [[4, 3, [5], ['KD', '2H', '3H', 'JC', 'QC', 'TC', 'AS', 'JS', '4D', 'KC', '2S', 'QH', 'AC', '4S', '8S', 'TH', '3C', 'JD', 'TS', '5H']], [[['KD', '2H', '3H', 'JC', 'QC'], ['TC', 'AS', 'JS', '4D', 'KC'], ['2S', 'QH', 'AC', '4S', '8S'], ['TH', '3C', 'JD', 'TS', '5H']], []]], [[5, 4, [3, 2], ['4S', 'QD', 'JH', '8S', '8C', '2C', 'TD', 'AS', '5H', '9C', '7S', '9H', 'JC', 'QS', 'KD', '8D', '3H', '2D', 'TH', '6S', '4D', '2H', '7H', '7C', '9S', 'AC']], [[['4S', 'QD', 'JH', '8D', '3H'], ['8S', '8C', '2C', '2D', 'TH'], ['TD', 'AS', '5H', '6S', '4D'], ['9C', '7S', '9H', '2H', '7H'], ['JC', 'QS', 'KD', '7C', '9S']], ['AC']]], [[3, 1, [2, 2, 1], ['QS', '3C', '2H', 'QC', '2C', 'AH', 'AD', '6C', '7H', '6H', 'KS', '9H', 'TD', '4H', 'AS', '8H']], [[['2H', 'QC', '7H', '6H', '4H'], ['2C', 'AH', 'KS', '9H', 'AS'], ['QS', '3C', 'AD', '6C', 'TD']], ['8H']]], [[2, 1, [1], ['TH', 'JC']], [[['TH'], ['JC']], []]], [[2, 0, [3, 2], ['QD', 'TH', '7S', '5C', 'TC', '2D', '2H', 'TS', 'JD', '9S', 'QS']], [[['5C', 'TC', '2D', 'JD', '9S'], ['QD', 'TH', '7S', '2H', 'TS']], ['QS']]], [[5, 2, [2, 3], ['TS', '8C', 'QD', '3C', '6H', 'QS', '4C', 'QC', '2C', '7S', '2D', 'TD', '6C', '5H', '8D', 'KH', '5S', '4S', '9D', '9H', '5C', '7D', '2H', '3S', '6S']], [[['6H', 'QS', '5S', '4S', '9D'], ['4C', 'QC', '9H', '5C', '7D'], ['2C', '7S', '2H', '3S', '6S'], ['TS', '8C', '2D', 'TD', '6C'], ['QD', '3C', '5H', '8D', 'KH']], []]]], [[[2, 1, [1], ['QC', '6S', 'AH']], [[['QC'], ['6S']], ['AH']]], [[3, 1, [2, 2, 1], ['QS', '3C', '2H', 'QC', '2C', 'AH', 'AD', '6C', '7H', '6H', 'KS', '9H', 'TD', '4H', 'AS', '8H']], [[['2H', 'QC', '7H', '6H', '4H'], ['2C', 'AH', 'KS', '9H', 'AS'], ['QS', '3C', 'AD', '6C', 'TD']], ['8H']]], [[5, 2, [1, 1, 1], ['8C', '5C', '3C', '6C', 'KH', '2S', '2D', 'KS', '3H', '9D', 'AD', 'JC', 'AC', 'QC', '8S', 'TS']], [[['3C', 'KS', 'AC'], ['6C', '3H', 'QC'], ['KH', '9D', '8S'], ['8C', '2S', 'AD'], ['5C', '2D', 'JC']], ['TS']]], [[2, 0, [5], ['2D', '7H', '4C', '7D', '5C', 'TC', '3D', 'QD', '4S', 'KS', 'JD']], [[['TC', '3D', 'QD', '4S', 'KS'], ['2D', '7H', '4C', '7D', '5C']], ['JD']]], [[3, 2, [3, 2], ['2D', '8C', 'JS', '6H', '8H', '4S', '9C', '5H', 'QH', '7C', '4H', 'QC', '3H', '6S', 'AD', '4C']], [[['2D', '8C', 'JS', '7C', '4H'], ['6H', '8H', '4S', 'QC', '3H'], ['9C', '5H', 'QH', '6S', 'AD']], ['4C']]], [[4, 2, [2, 3], ['8S', 'QS', 'JS', '2C', '5S', '3S', '6S', 'KS', '9D', 'TD', 'TH', '6D', '9H', '8D', 'JH', 'JC', '8C', '9S', '4C', '9C', 'TS', '7C', 'TC', 'KH']], [[['JS', '2C', '6D', '9H', '8D'], ['5S', '3S', 'JH', 'JC', '8C'], ['6S', 'KS', '9S', '4C', '9C'], ['8S', 'QS', '9D', 'TD', 'TH']], ['TS', '7C', 'TC', 'KH']]], [[2, 0, [3, 2], ['JC', '4C', 'KH', '7C', '6S', 'KS', 'TC', '2D', '9D', '5S', '4H', '2C', '4D', '5D']], [[['7C', '6S', 'KS', '9D', '5S'], ['JC', '4C', 'KH', 'TC', '2D']], ['4H', '2C', '4D', '5D']]], [[4, 2, [3, 2], ['2H', '7H', '5C', 'QD', 'JC', '9D', 'AH', 'KD', '2S', '4C', '4H', '6C', '8H', 'JH', 'QC', 'JD', '8S', '8C', '2D', '5S']], [[['QD', 'JC', '9D', 'QC', 'JD'], ['AH', 'KD', '2S', '8S', '8C'], ['4C', '4H', '6C', '2D', '5S'], ['2H', '7H', '5C', '8H', 'JH']], []]]], [[[3, 1, [5], ['KH', 'QH', '7S', '2H', '4S', '5D', 'AC', '9S', '6H', 'AS', 'TH', '8C', 'TS', '4D', 'QC']], [[['5D', 'AC', '9S', '6H', 'AS'], ['TH', '8C', 'TS', '4D', 'QC'], ['KH', 'QH', '7S', '2H', '4S']], []]], [[4, 2, [2, 3], ['8S', 'QS', 'JS', '2C', '5S', '3S', '6S', 'KS', '9D', 'TD', 'TH', '6D', '9H', '8D', 'JH', 'JC', '8C', '9S', '4C', '9C', 'TS', '7C', 'TC', 'KH']], [[['JS', '2C', '6D', '9H', '8D'], ['5S', '3S', 'JH', 'JC', '8C'], ['6S', 'KS', '9S', '4C', '9C'], ['8S', 'QS', '9D', 'TD', 'TH']], ['TS', '7C', 'TC', 'KH']]], [[5, 0, [1], ['JH', 'QC', 'TC', 'AD', '4S', '7H', '4D', '3C', '3D']], [[['4S'], ['JH'], ['QC'], ['TC'], ['AD']], ['7H', '4D', '3C', '3D']]], [[2, 1, [1], ['6S', '9H', 'AD', '3H', '3D', '4C']], [[['6S'], ['9H']], ['AD', '3H', '3D', '4C']]], [[2, 1, [5], ['7D', '8C', '5H', 'TD', '4H', 'AD', 'JS', 'QC', 'QH', '8D', '7C', '5S', '5C']], [[['7D', '8C', '5H', 'TD', '4H'], ['AD', 'JS', 'QC', 'QH', '8D']], ['7C', '5S', '5C']]], [[2, 1, [3, 2], ['TD', 'JD', '7D', '5S', '9H', 'QH', '8D', 'JH', '9D', 'QS', 'AS', '2D', 'TS', '2H']], [[['TD', 'JD', '7D', '8D', 'JH'], ['5S', '9H', 'QH', '9D', 'QS']], ['AS', '2D', 'TS', '2H']]], [[4, 0, [1, 1, 1], ['8H', '4C', 'TS', 'JD', '2H', '2S', '3C', '7S', '6D', 'KD', '3S', '8D']], [[['JD', '7S', '8D'], ['8H', '2H', '6D'], ['4C', '2S', 'KD'], ['TS', '3C', '3S']], []]], [[5, 2, [1, 1, 1], ['KS', '2H', '3C', 'KD', '5C', 'AC', 'JS', '8S', 'AD', 'TC', '3S', '4S', 'QH', '9H', '7H']], [[['3C', '8S', 'QH'], ['KD', 'AD', '9H'], ['5C', 'TC', '7H'], ['KS', 'AC', '3S'], ['2H', 'JS', '4S']], []]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"deal case %d\" % i, solve(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":"53322654bf6afa31449011303f0daa07d6cfd6083e795da2cb04c8e2da18377b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    n, dealer, pattern, deck = x\n    hands = [[] for _ in range(n)]\n    pos = 0\n    for batch in pattern:\n        for k in range(n):\n            seat = (dealer + k) % n\n            hands[seat].extend(deck[pos:pos + batch])\n            pos += batch\n    return [hands, deck[pos:]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[3, 0, [1], ['7H', '5C', '5S', '9C', 'QS', 'AS']], [[['5S'], ['7H'], ['5C']], ['9C', 'QS', 'AS']]], [[4, 1, [1, 1, 1], ['AH', '3H', '7D', 'AS', 'TD', '4C', 'TH', '4H', '5H', '6S', '3S', '4D']], [[['7D', 'TH', '3S'], ['AS', '4H', '4D'], ['AH', 'TD', '5H'], ['3H', '4C', '6S']], []]], [[2, 1, [1], ['QC', '6S', 'AH']], [[['QC'], ['6S']], ['AH']]], [[2, 1, [3, 2], ['9H', 'AH', '7S', '4D', 'KD', '3H', '5D', '7C', 'TD', 'QS']], [[['9H', 'AH', '7S', '5D', '7C'], ['4D', 'KD', '3H', 'TD', 'QS']], []]], [[5, 1, [1, 1, 1], ['9H', 'AS', '2H', 'TS', 'QH', '5S', 'QD', '5H', 'AH', '3H', '8H', '7C', '3S', 'JS', '2S', '6H']], [[['TS', 'AH', 'JS'], ['QH', '3H', '2S'], ['9H', '5S', '8H'], ['AS', 'QD', '7C'], ['2H', '5H', '3S']], ['6H']]], [[3, 1, [5], ['KH', 'QH', '7S', '2H', '4S', '5D', 'AC', '9S', '6H', 'AS', 'TH', '8C', 'TS', '4D', 'QC']], [[['5D', 'AC', '9S', '6H', 'AS'], ['TH', '8C', 'TS', '4D', 'QC'], ['KH', 'QH', '7S', '2H', '4S']], []]], [[3, 2, [1, 1, 1], ['5C', 'JC', '6H', '9D', '2C', 'TH', 'JD', '7D', 'TS', 'KC', 'AD', '9H', '6D']], [[['5C', '9D', 'JD'], ['JC', '2C', '7D'], ['6H', 'TH', 'TS']], ['KC', 'AD', '9H', '6D']]], [[4, 3, [2, 2, 1], ['2S', '5S', 'QD', 'QS', 'TH', 'JS', '5H', '2H', '4D', '6C', '5C', 'AD', '8D', '3S', 'TC', '4C', 'KS', '9H', 'QH', 'TD', '3H', '7C', '7D', 'JC']], [[['2S', '5S', '4D', '6C', 'KS'], ['QD', 'QS', '5C', 'AD', '9H'], ['TH', 'JS', '8D', '3S', 'QH'], ['5H', '2H', 'TC', '4C', 'TD']], ['3H', '7C', '7D', 'JC']]]], [[[4, 0, [5], ['AD', 'QD', 'TD', '9D', '3H', '9C', '4H', 'AS', 'KH', 'KD', 'KC', '5C', 'QH', 'AH', '7D', '5H', '8H', 'JD', 'TH', '2S', '4S']], [[['5H', '8H', 'JD', 'TH', '2S'], ['AD', 'QD', 'TD', '9D', '3H'], ['9C', '4H', 'AS', 'KH', 'KD'], ['KC', '5C', 'QH', 'AH', '7D']], ['4S']]], [[4, 3, [2, 2, 1], ['2S', '5S', 'QD', 'QS', 'TH', 'JS', '5H', '2H', '4D', '6C', '5C', 'AD', '8D', '3S', 'TC', '4C', 'KS', '9H', 'QH', 'TD', '3H', '7C', '7D', 'JC']], [[['2S', '5S', '4D', '6C', 'KS'], ['QD', 'QS', '5C', 'AD', '9H'], ['TH', 'JS', '8D', '3S', 'QH'], ['5H', '2H', 'TC', '4C', 'TD']], ['3H', '7C', '7D', 'JC']]], [[3, 0, [1, 1, 1], ['3S', '7C', '4H', '7H', 'AS', '2S', '8C', '7D', '5S']], [[['4H', '2S', '5S'], ['3S', '7H', '8C'], ['7C', 'AS', '7D']], []]], [[4, 2, [3, 2], ['4C', 'JC', '4H', '7D', 'QS', '5S', '2H', 'JH', '2D', '4S', 'TC', '7S', 'AH', '2C', '5C', '4D', '7H', '6C', 'KC', 'TH']], [[['7D', 'QS', '5S', '5C', '4D'], ['2H', 'JH', '2D', '7H', '6C'], ['4S', 'TC', '7S', 'KC', 'TH'], ['4C', 'JC', '4H', 'AH', '2C']], []]], [[4, 2, [2, 3], ['5D', '9D', '7C', '8D', 'AS', 'AH', 'TD', '3C', '6H', '9H', '4H', '5H', '9C', 'KD', 'AC', 'QD', '6D', '5S', 'AD', 'QH', '6S']], [[['7C', '8D', '5H', '9C', 'KD'], ['AS', 'AH', 'AC', 'QD', '6D'], ['TD', '3C', '5S', 'AD', 'QH'], ['5D', '9D', '6H', '9H', '4H']], ['6S']]], [[5, 3, [2, 2, 1], ['AS', '6S', '9C', '6C', '5S', '6D', 'JS', '2H', '8S', '5D', '8H', '2D', 'TH', 'JD', '3D', '7D', '2C', 'QH', '8C', '3S', '8D', '9S', 'AC', 'KH', '7H', '4C']], [[['9C', '6C', 'TH', 'JD', '9S'], ['5S', '6D', '3D', '7D', 'AC'], ['JS', '2H', '2C', 'QH', 'KH'], ['8S', '5D', '8C', '3S', '7H'], ['AS', '6S', '8H', '2D', '8D']], ['4C']]], [[4, 2, [5], ['QC', '8C', '6C', 'TD', '8H', 'JS', '5C', 'TH', '3H', '5D', '3S', 'JH', 'TS', 'AD', '7H', '6S', 'JD', '7D', '7S', '7C']], [[['JS', '5C', 'TH', '3H', '5D'], ['3S', 'JH', 'TS', 'AD', '7H'], ['6S', 'JD', '7D', '7S', '7C'], ['QC', '8C', '6C', 'TD', '8H']], []]], [[3, 2, [2, 3], ['2D', '7S', '2H', 'KH', '5S', '8S', '5C', 'AD', 'TC', '9C', '3D', '9D', '6C', 'KS', '4H']], [[['2D', '7S', '5C', 'AD', 'TC'], ['2H', 'KH', '9C', '3D', '9D'], ['5S', '8S', '6C', 'KS', '4H']], []]]], [[[4, 1, [1, 1, 1], ['AH', '3H', '7D', 'AS', 'TD', '4C', 'TH', '4H', '5H', '6S', '3S', '4D']], [[['7D', 'TH', '3S'], ['AS', '4H', '4D'], ['AH', 'TD', '5H'], ['3H', '4C', '6S']], []]], [[5, 3, [2, 2, 1], ['AS', '6S', '9C', '6C', '5S', '6D', 'JS', '2H', '8S', '5D', '8H', '2D', 'TH', 'JD', '3D', '7D', '2C', 'QH', '8C', '3S', '8D', '9S', 'AC', 'KH', '7H', '4C']], [[['9C', '6C', 'TH', 'JD', '9S'], ['5S', '6D', '3D', '7D', 'AC'], ['JS', '2H', '2C', 'QH', 'KH'], ['8S', '5D', '8C', '3S', '7H'], ['AS', '6S', '8H', '2D', '8D']], ['4C']]], [[4, 3, [5], ['KD', '2H', '3H', 'JC', 'QC', 'TC', 'AS', 'JS', '4D', 'KC', '2S', 'QH', 'AC', '4S', '8S', 'TH', '3C', 'JD', 'TS', '5H']], [[['KD', '2H', '3H', 'JC', 'QC'], ['TC', 'AS', 'JS', '4D', 'KC'], ['2S', 'QH', 'AC', '4S', '8S'], ['TH', '3C', 'JD', 'TS', '5H']], []]], [[5, 4, [3, 2], ['4S', 'QD', 'JH', '8S', '8C', '2C', 'TD', 'AS', '5H', '9C', '7S', '9H', 'JC', 'QS', 'KD', '8D', '3H', '2D', 'TH', '6S', '4D', '2H', '7H', '7C', '9S', 'AC']], [[['4S', 'QD', 'JH', '8D', '3H'], ['8S', '8C', '2C', '2D', 'TH'], ['TD', 'AS', '5H', '6S', '4D'], ['9C', '7S', '9H', '2H', '7H'], ['JC', 'QS', 'KD', '7C', '9S']], ['AC']]], [[3, 1, [2, 2, 1], ['QS', '3C', '2H', 'QC', '2C', 'AH', 'AD', '6C', '7H', '6H', 'KS', '9H', 'TD', '4H', 'AS', '8H']], [[['2H', 'QC', '7H', '6H', '4H'], ['2C', 'AH', 'KS', '9H', 'AS'], ['QS', '3C', 'AD', '6C', 'TD']], ['8H']]], [[2, 1, [1], ['TH', 'JC']], [[['TH'], ['JC']], []]], [[2, 0, [3, 2], ['QD', 'TH', '7S', '5C', 'TC', '2D', '2H', 'TS', 'JD', '9S', 'QS']], [[['5C', 'TC', '2D', 'JD', '9S'], ['QD', 'TH', '7S', '2H', 'TS']], ['QS']]], [[5, 2, [2, 3], ['TS', '8C', 'QD', '3C', '6H', 'QS', '4C', 'QC', '2C', '7S', '2D', 'TD', '6C', '5H', '8D', 'KH', '5S', '4S', '9D', '9H', '5C', '7D', '2H', '3S', '6S']], [[['6H', 'QS', '5S', '4S', '9D'], ['4C', 'QC', '9H', '5C', '7D'], ['2C', '7S', '2H', '3S', '6S'], ['TS', '8C', '2D', 'TD', '6C'], ['QD', '3C', '5H', '8D', 'KH']], []]]], [[[2, 1, [1], ['QC', '6S', 'AH']], [[['QC'], ['6S']], ['AH']]], [[3, 1, [2, 2, 1], ['QS', '3C', '2H', 'QC', '2C', 'AH', 'AD', '6C', '7H', '6H', 'KS', '9H', 'TD', '4H', 'AS', '8H']], [[['2H', 'QC', '7H', '6H', '4H'], ['2C', 'AH', 'KS', '9H', 'AS'], ['QS', '3C', 'AD', '6C', 'TD']], ['8H']]], [[5, 2, [1, 1, 1], ['8C', '5C', '3C', '6C', 'KH', '2S', '2D', 'KS', '3H', '9D', 'AD', 'JC', 'AC', 'QC', '8S', 'TS']], [[['3C', 'KS', 'AC'], ['6C', '3H', 'QC'], ['KH', '9D', '8S'], ['8C', '2S', 'AD'], ['5C', '2D', 'JC']], ['TS']]], [[2, 0, [5], ['2D', '7H', '4C', '7D', '5C', 'TC', '3D', 'QD', '4S', 'KS', 'JD']], [[['TC', '3D', 'QD', '4S', 'KS'], ['2D', '7H', '4C', '7D', '5C']], ['JD']]], [[3, 2, [3, 2], ['2D', '8C', 'JS', '6H', '8H', '4S', '9C', '5H', 'QH', '7C', '4H', 'QC', '3H', '6S', 'AD', '4C']], [[['2D', '8C', 'JS', '7C', '4H'], ['6H', '8H', '4S', 'QC', '3H'], ['9C', '5H', 'QH', '6S', 'AD']], ['4C']]], [[4, 2, [2, 3], ['8S', 'QS', 'JS', '2C', '5S', '3S', '6S', 'KS', '9D', 'TD', 'TH', '6D', '9H', '8D', 'JH', 'JC', '8C', '9S', '4C', '9C', 'TS', '7C', 'TC', 'KH']], [[['JS', '2C', '6D', '9H', '8D'], ['5S', '3S', 'JH', 'JC', '8C'], ['6S', 'KS', '9S', '4C', '9C'], ['8S', 'QS', '9D', 'TD', 'TH']], ['TS', '7C', 'TC', 'KH']]], [[2, 0, [3, 2], ['JC', '4C', 'KH', '7C', '6S', 'KS', 'TC', '2D', '9D', '5S', '4H', '2C', '4D', '5D']], [[['7C', '6S', 'KS', '9D', '5S'], ['JC', '4C', 'KH', 'TC', '2D']], ['4H', '2C', '4D', '5D']]], [[4, 2, [3, 2], ['2H', '7H', '5C', 'QD', 'JC', '9D', 'AH', 'KD', '2S', '4C', '4H', '6C', '8H', 'JH', 'QC', 'JD', '8S', '8C', '2D', '5S']], [[['QD', 'JC', '9D', 'QC', 'JD'], ['AH', 'KD', '2S', '8S', '8C'], ['4C', '4H', '6C', '2D', '5S'], ['2H', '7H', '5C', '8H', 'JH']], []]]], [[[3, 1, [5], ['KH', 'QH', '7S', '2H', '4S', '5D', 'AC', '9S', '6H', 'AS', 'TH', '8C', 'TS', '4D', 'QC']], [[['5D', 'AC', '9S', '6H', 'AS'], ['TH', '8C', 'TS', '4D', 'QC'], ['KH', 'QH', '7S', '2H', '4S']], []]], [[4, 2, [2, 3], ['8S', 'QS', 'JS', '2C', '5S', '3S', '6S', 'KS', '9D', 'TD', 'TH', '6D', '9H', '8D', 'JH', 'JC', '8C', '9S', '4C', '9C', 'TS', '7C', 'TC', 'KH']], [[['JS', '2C', '6D', '9H', '8D'], ['5S', '3S', 'JH', 'JC', '8C'], ['6S', 'KS', '9S', '4C', '9C'], ['8S', 'QS', '9D', 'TD', 'TH']], ['TS', '7C', 'TC', 'KH']]], [[5, 0, [1], ['JH', 'QC', 'TC', 'AD', '4S', '7H', '4D', '3C', '3D']], [[['4S'], ['JH'], ['QC'], ['TC'], ['AD']], ['7H', '4D', '3C', '3D']]], [[2, 1, [1], ['6S', '9H', 'AD', '3H', '3D', '4C']], [[['6S'], ['9H']], ['AD', '3H', '3D', '4C']]], [[2, 1, [5], ['7D', '8C', '5H', 'TD', '4H', 'AD', 'JS', 'QC', 'QH', '8D', '7C', '5S', '5C']], [[['7D', '8C', '5H', 'TD', '4H'], ['AD', 'JS', 'QC', 'QH', '8D']], ['7C', '5S', '5C']]], [[2, 1, [3, 2], ['TD', 'JD', '7D', '5S', '9H', 'QH', '8D', 'JH', '9D', 'QS', 'AS', '2D', 'TS', '2H']], [[['TD', 'JD', '7D', '8D', 'JH'], ['5S', '9H', 'QH', '9D', 'QS']], ['AS', '2D', 'TS', '2H']]], [[4, 0, [1, 1, 1], ['8H', '4C', 'TS', 'JD', '2H', '2S', '3C', '7S', '6D', 'KD', '3S', '8D']], [[['JD', '7S', '8D'], ['8H', '2H', '6D'], ['4C', '2S', 'KD'], ['TS', '3C', '3S']], []]], [[5, 2, [1, 1, 1], ['KS', '2H', '3C', 'KD', '5C', 'AC', 'JS', '8S', 'AD', 'TC', '3S', '4S', 'QH', '9H', '7H']], [[['3C', '8S', 'QH'], ['KD', 'AD', '9H'], ['5C', 'TC', '7H'], ['KS', 'AC', '3S'], ['2H', 'JS', '4S']], []]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"deal case %d\" % i, solve(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":"A bounded toy rule contract stated explicitly in the contract field; cards are two-character codes (rank, suit). Not a complete implementation of any published rulebook or casino table 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-card-game-rule-engines-deal-pattern-first-recipient","generated_at":"2026-09-29T14:50:23.973530+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Card-game engines, scoring apps and online tables apply this rule automatically on every hand.","root_cause":"The seat loop starts at offset 0.","sha256":"d66249706c89ed5442333e9971b7c238d3dbae887e52c8096762cd47a079922e","title":"Dealing starts with the dealer · 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":40.006,"exit_code":1,"observations":[{"actual":[[["5S"],["5C"],["7H"]],["9C","QS","AS"]],"check":"deal case 0","expected":[[["5S"],["7H"],["5C"]],["9C","QS","AS"]],"passed":false},{"actual":[[["AH","TD","5H"],["AS","4H","4D"],["7D","TH","3S"],["3H","4C","6S"]],[]],"check":"deal case 1","expected":[[["7D","TH","3S"],["AS","4H","4D"],["AH","TD","5H"],["3H","4C","6S"]],[]],"passed":false},{"actual":[[["QC"],["6S"]],["AH"]],"check":"deal case 2","expected":[[["QC"],["6S"]],["AH"]],"passed":true},{"actual":[[["9H","AH","7S","5D","7C"],["4D","KD","3H","TD","QS"]],[]],"check":"deal case 3","expected":[[["9H","AH","7S","5D","7C"],["4D","KD","3H","TD","QS"]],[]],"passed":true},{"actual":[[["9H","5S","8H"],["QH","3H","2S"],["TS","AH","JS"],["2H","5H","3S"],["AS","QD","7C"]],["6H"]],"check":"deal case 4","expected":[[["TS","AH","JS"],["QH","3H","2S"],["9H","5S","8H"],["AS","QD","7C"],["2H","5H","3S"]],["6H"]],"passed":false},{"actual":[[["KH","QH","7S","2H","4S"],["TH","8C","TS","4D","QC"],["5D","AC","9S","6H","AS"]],[]],"check":"deal case 5","expected":[[["5D","AC","9S","6H","AS"],["TH","8C","TS","4D","QC"],["KH","QH","7S","2H","4S"]],[]],"passed":false},{"actual":[[["JC","2C","7D"],["5C","9D","JD"],["6H","TH","TS"]],["KC","AD","9H","6D"]],"check":"deal case 6","expected":[[["5C","9D","JD"],["JC","2C","7D"],["6H","TH","TS"]],["KC","AD","9H","6D"]],"passed":false},{"actual":[[["TH","JS","8D","3S","QH"],["QD","QS","5C","AD","9H"],["2S","5S","4D","6C","KS"],["5H","2H","TC","4C","TD"]],["3H","7C","7D","JC"]],"check":"deal case 7","expected":[[["2S","5S","4D","6C","KS"],["QD","QS","5C","AD","9H"],["TH","JS","8D","3S","QH"],["5H","2H","TC","4C","TD"]],["3H","7C","7D","JC"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"deal case 0\", \"actual\": [[[\"5S\"], [\"5C\"], [\"7H\"]], [\"9C\", \"QS\", \"AS\"]], \"expected\": [[[\"5S\"], [\"7H\"], [\"5C\"]], [\"9C\", \"QS\", \"AS\"]], \"passed\": false}, {\"check\": \"deal case 1\", \"actual\": [[[\"AH\", \"TD\", \"5H\"], [\"AS\", \"4H\", \"4D\"], [\"7D\", \"TH\", \"3S\"], [\"3H\", \"4C\", \"6S\"]], []], \"expected\": [[[\"7D\", \"TH\", \"3S\"], [\"AS\", \"4H\", \"4D\"], [\"AH\", \"TD\", \"5H\"], [\"3H\", \"4C\", \"6S\"]], []], \"passed\": false}, {\"check\": \"deal case 2\", \"actual\": [[[\"QC\"], [\"6S\"]], [\"AH\"]], \"expected\": [[[\"QC\"], [\"6S\"]], [\"AH\"]], \"passed\": true}, {\"check\": \"deal case 3\", \"actual\": [[[\"9H\", \"AH\", \"7S\", \"5D\", \"7C\"], [\"4D\", \"KD\", \"3H\", \"TD\", \"QS\"]], []], \"expected\": [[[\"9H\", \"AH\", \"7S\", \"5D\", \"7C\"], [\"4D\", \"KD\", \"3H\", \"TD\", \"QS\"]], []], \"passed\": true}, {\"check\": \"deal case 4\", \"actual\": [[[\"9H\", \"5S\", \"8H\"], [\"QH\", \"3H\", \"2S\"], [\"TS\", \"AH\", \"JS\"], [\"2H\", \"5H\", \"3S\"], [\"AS\", \"QD\", \"7C\"]], [\"6H\"]], \"expected\": [[[\"TS\", \"AH\", \"JS\"], [\"QH\", \"3H\", \"2S\"], [\"9H\", \"5S\", \"8H\"], [\"AS\", \"QD\", \"7C\"], [\"2H\", \"5H\", \"3S\"]], [\"6H\"]], \"passed\": false}, {\"check\": \"deal case 5\", \"actual\": [[[\"KH\", \"QH\", \"7S\", \"2H\", \"4S\"], [\"TH\", \"8C\", \"TS\", \"4D\", \"QC\"], [\"5D\", \"AC\", \"9S\", \"6H\", \"AS\"]], []], \"expected\": [[[\"5D\", \"AC\", \"9S\", \"6H\", \"AS\"], [\"TH\", \"8C\", \"TS\", \"4D\", \"QC\"], [\"KH\", \"QH\", \"7S\", \"2H\", \"4S\"]], []], \"passed\": false}, {\"check\": \"deal case 6\", \"actual\": [[[\"JC\", \"2C\", \"7D\"], [\"5C\", \"9D\", \"JD\"], [\"6H\", \"TH\", \"TS\"]], [\"KC\", \"AD\", \"9H\", \"6D\"]], \"expected\": [[[\"5C\", \"9D\", \"JD\"], [\"JC\", \"2C\", \"7D\"], [\"6H\", \"TH\", \"TS\"]], [\"KC\", \"AD\", \"9H\", \"6D\"]], \"passed\": false}, {\"check\": \"deal case 7\", \"actual\": [[[\"TH\", \"JS\", \"8D\", \"3S\", \"QH\"], [\"QD\", \"QS\", \"5C\", \"AD\", \"9H\"], [\"2S\", \"5S\", \"4D\", \"6C\", \"KS\"], [\"5H\", \"2H\", \"TC\", \"4C\", \"TD\"]], [\"3H\", \"7C\", \"7D\", \"JC\"]], \"expected\": [[[\"2S\", \"5S\", \"4D\", \"6C\", \"KS\"], [\"QD\", \"QS\", \"5C\", \"AD\", \"9H\"], [\"TH\", \"JS\", \"8D\", \"3S\", \"QH\"], [\"5H\", \"2H\", \"TC\", \"4C\", \"TD\"]], [\"3H\", \"7C\", \"7D\", \"JC\"]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.895,"exit_code":1,"observations":[{"actual":[[["7H"],["5C"],["5S"]],["9C","QS","AS"]],"check":"deal case 0","expected":[[["5S"],["7H"],["5C"]],["9C","QS","AS"]],"passed":false},{"actual":[[["AS","4H","4D"],["AH","TD","5H"],["3H","4C","6S"],["7D","TH","3S"]],[]],"check":"deal case 1","expected":[[["7D","TH","3S"],["AS","4H","4D"],["AH","TD","5H"],["3H","4C","6S"]],[]],"passed":false},{"actual":[[["6S"],["QC"]],["AH"]],"check":"deal case 2","expected":[[["QC"],["6S"]],["AH"]],"passed":false},{"actual":[[["4D","KD","3H","TD","QS"],["9H","AH","7S","5D","7C"]],[]],"check":"deal case 3","expected":[[["9H","AH","7S","5D","7C"],["4D","KD","3H","TD","QS"]],[]],"passed":false},{"actual":[[["QH","3H","2S"],["9H","5S","8H"],["AS","QD","7C"],["2H","5H","3S"],["TS","AH","JS"]],["6H"]],"check":"deal case 4","expected":[[["TS","AH","JS"],["QH","3H","2S"],["9H","5S","8H"],["AS","QD","7C"],["2H","5H","3S"]],["6H"]],"passed":false},{"actual":[[["TH","8C","TS","4D","QC"],["KH","QH","7S","2H","4S"],["5D","AC","9S","6H","AS"]],[]],"check":"deal case 5","expected":[[["5D","AC","9S","6H","AS"],["TH","8C","TS","4D","QC"],["KH","QH","7S","2H","4S"]],[]],"passed":false},{"actual":[[["JC","2C","7D"],["6H","TH","TS"],["5C","9D","JD"]],["KC","AD","9H","6D"]],"check":"deal case 6","expected":[[["5C","9D","JD"],["JC","2C","7D"],["6H","TH","TS"]],["KC","AD","9H","6D"]],"passed":false},{"actual":[[["QD","QS","5C","AD","9H"],["TH","JS","8D","3S","QH"],["5H","2H","TC","4C","TD"],["2S","5S","4D","6C","KS"]],["3H","7C","7D","JC"]],"check":"deal case 7","expected":[[["2S","5S","4D","6C","KS"],["QD","QS","5C","AD","9H"],["TH","JS","8D","3S","QH"],["5H","2H","TC","4C","TD"]],["3H","7C","7D","JC"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"deal case 0\", \"actual\": [[[\"7H\"], [\"5C\"], [\"5S\"]], [\"9C\", \"QS\", \"AS\"]], \"expected\": [[[\"5S\"], [\"7H\"], [\"5C\"]], [\"9C\", \"QS\", \"AS\"]], \"passed\": false}, {\"check\": \"deal case 1\", \"actual\": [[[\"AS\", \"4H\", \"4D\"], [\"AH\", \"TD\", \"5H\"], [\"3H\", \"4C\", \"6S\"], [\"7D\", \"TH\", \"3S\"]], []], \"expected\": [[[\"7D\", \"TH\", \"3S\"], [\"AS\", \"4H\", \"4D\"], [\"AH\", \"TD\", \"5H\"], [\"3H\", \"4C\", \"6S\"]], []], \"passed\": false}, {\"check\": \"deal case 2\", \"actual\": [[[\"6S\"], [\"QC\"]], [\"AH\"]], \"expected\": [[[\"QC\"], [\"6S\"]], [\"AH\"]], \"passed\": false}, {\"check\": \"deal case 3\", \"actual\": [[[\"4D\", \"KD\", \"3H\", \"TD\", \"QS\"], [\"9H\", \"AH\", \"7S\", \"5D\", \"7C\"]], []], \"expected\": [[[\"9H\", \"AH\", \"7S\", \"5D\", \"7C\"], [\"4D\", \"KD\", \"3H\", \"TD\", \"QS\"]], []], \"passed\": false}, {\"check\": \"deal case 4\", \"actual\": [[[\"QH\", \"3H\", \"2S\"], [\"9H\", \"5S\", \"8H\"], [\"AS\", \"QD\", \"7C\"], [\"2H\", \"5H\", \"3S\"], [\"TS\", \"AH\", \"JS\"]], [\"6H\"]], \"expected\": [[[\"TS\", \"AH\", \"JS\"], [\"QH\", \"3H\", \"2S\"], [\"9H\", \"5S\", \"8H\"], [\"AS\", \"QD\", \"7C\"], [\"2H\", \"5H\", \"3S\"]], [\"6H\"]], \"passed\": false}, {\"check\": \"deal case 5\", \"actual\": [[[\"TH\", \"8C\", \"TS\", \"4D\", \"QC\"], [\"KH\", \"QH\", \"7S\", \"2H\", \"4S\"], [\"5D\", \"AC\", \"9S\", \"6H\", \"AS\"]], []], \"expected\": [[[\"5D\", \"AC\", \"9S\", \"6H\", \"AS\"], [\"TH\", \"8C\", \"TS\", \"4D\", \"QC\"], [\"KH\", \"QH\", \"7S\", \"2H\", \"4S\"]], []], \"passed\": false}, {\"check\": \"deal case 6\", \"actual\": [[[\"JC\", \"2C\", \"7D\"], [\"6H\", \"TH\", \"TS\"], [\"5C\", \"9D\", \"JD\"]], [\"KC\", \"AD\", \"9H\", \"6D\"]], \"expected\": [[[\"5C\", \"9D\", \"JD\"], [\"JC\", \"2C\", \"7D\"], [\"6H\", \"TH\", \"TS\"]], [\"KC\", \"AD\", \"9H\", \"6D\"]], \"passed\": false}, {\"check\": \"deal case 7\", \"actual\": [[[\"QD\", \"QS\", \"5C\", \"AD\", \"9H\"], [\"TH\", \"JS\", \"8D\", \"3S\", \"QH\"], [\"5H\", \"2H\", \"TC\", \"4C\", \"TD\"], [\"2S\", \"5S\", \"4D\", \"6C\", \"KS\"]], [\"3H\", \"7C\", \"7D\", \"JC\"]], \"expected\": [[[\"2S\", \"5S\", \"4D\", \"6C\", \"KS\"], [\"QD\", \"QS\", \"5C\", \"AD\", \"9H\"], [\"TH\", \"JS\", \"8D\", \"3S\", \"QH\"], [\"5H\", \"2H\", \"TC\", \"4C\", \"TD\"]], [\"3H\", \"7C\", \"7D\", \"JC\"]], \"passed\": false}], \"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."}}