{"abstract":"5D-5S cannot beat 5C-5H.","category":"Card game rule engines","checks":8,"contract":"Input [current_combination, play]. Ranks 3 low to 2 high; suits D<C<H<S. A play is 1-3 cards of one rank. On an empty table any valid play is \"ok\"; otherwise it must have the same size and its highest card must outrank the current highest card (rank, then suit). Empty play is \"pass\". Return \"ok\", \"invalid\" or \"pass\".","evaluation_group":"w2-card-game-rule-engines-big-two","failed_approach":"Comparing the first card as listed depends on input order.","family":"w2-card-game-rule-engines-big-two-pair-comparison-card","id":"FA-83751","implementations":{"attempt":{"sha256":"8c53f9144c8bbf3b5896fd7b12c55d55bc4aa22f2c71caac033b5cded8b0eeca","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cur, play = x\n    order = '3456789TJQKA2'\n    suits = 'DCHS'\n    def key(c):\n        return (order.index(c[0]), suits.index(c[1]))\n    if not play:\n        return 'pass'\n    if len(set(c[0] for c in play)) != 1 or len(play) > 3:\n        return 'invalid'\n    if not cur:\n        return 'ok'\n    if len(play) != len(cur):\n        return 'invalid'\n    if key(play[0]) > key(cur[0]):\n        return 'ok'\n    return 'invalid'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[], ['KD']], 'ok'], [[['KC', 'KD'], ['KH', 'KS']], 'ok'], [[['8S', '8C', '8H'], ['KD', 'KC', 'KS']], 'ok'], [[['6S'], ['6H']], 'invalid'], [[['9C'], ['6S']], 'invalid'], [[[], ['3H', '3S', '3C']], 'ok'], [[['3C', '3H'], ['3S', '3D']], 'ok'], [[['9D', '9H', '9C'], ['9D', '9H', '9S']], 'ok']], [[[['8D', '8H'], ['8S', '8D', '8H', '8C']], 'invalid'], [[['AS'], ['AH', 'AC', 'AD']], 'invalid'], [[[], ['3C']], 'ok'], [[['QD'], ['QH']], 'ok'], [[['JD', 'JS'], ['TD', 'TS', 'TC', 'TH']], 'invalid'], [[['9S', '9H'], ['8S', '8C']], 'invalid'], [[['6C', '6H'], ['6D', '6S']], 'ok'], [[['KD', 'KS'], ['KS', 'KC']], 'invalid']], [[[['9D', '9C'], ['9D', '9C']], 'invalid'], [[['KD'], ['AH']], 'ok'], [[[], ['KS', 'KD']], 'ok'], [[['JC'], ['7C']], 'invalid'], [[['5S'], ['5H']], 'invalid'], [[['2S'], ['5D']], 'invalid'], [[['JH', 'JS', 'JD'], ['JS', 'JD', 'JH']], 'invalid'], [[['7C', '7S', '7D'], ['7S', '7H', '7C']], 'invalid']], [[[['JH', 'JC'], ['JC', 'JS']], 'ok'], [[['7C'], ['2D']], 'ok'], [[['2H'], ['2H']], 'invalid'], [[['TH', 'TD'], ['8D', '2S']], 'invalid'], [[['5H', '5D'], ['JS', 'JC']], 'ok'], [[[], ['QC', 'QH']], 'ok'], [[['QD', 'QS'], ['QH', 'QD']], 'invalid'], [[['3C', '3H'], ['3S', '3C']], 'ok']], [[[['6C', '6H'], ['AH', '4D']], 'invalid'], [[['3D', '3H', '3C'], ['3S', '3D', '3H', 'AC']], 'invalid'], [[['5S'], ['3S']], 'invalid'], [[['9C'], ['9C']], 'invalid'], [[['7C', '7S', '7D'], ['3D', '3S', '3C']], 'invalid'], [[['3H', '3C'], ['3D', '3C', '3S', '3H']], 'invalid'], [[['5C', '5H'], ['5D', '5S']], 'ok'], [[['5D', '5S'], ['5C', '5H']], 'invalid']]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"play 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":"cc5a5100748414008231507bca3474a4ec38fa855ecfd1fcbe7388dd331c6fa8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cur, play = x\n    order = '3456789TJQKA2'\n    suits = 'DCHS'\n    def key(c):\n        return (order.index(c[0]), suits.index(c[1]))\n    if not play:\n        return 'pass'\n    if len(set(c[0] for c in play)) != 1 or len(play) > 3:\n        return 'invalid'\n    if not cur:\n        return 'ok'\n    if len(play) != len(cur):\n        return 'invalid'\n    if min(key(c) for c in play) > min(key(c) for c in cur):\n        return 'ok'\n    return 'invalid'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[], ['KD']], 'ok'], [[['KC', 'KD'], ['KH', 'KS']], 'ok'], [[['8S', '8C', '8H'], ['KD', 'KC', 'KS']], 'ok'], [[['6S'], ['6H']], 'invalid'], [[['9C'], ['6S']], 'invalid'], [[[], ['3H', '3S', '3C']], 'ok'], [[['3C', '3H'], ['3S', '3D']], 'ok'], [[['9D', '9H', '9C'], ['9D', '9H', '9S']], 'ok']], [[[['8D', '8H'], ['8S', '8D', '8H', '8C']], 'invalid'], [[['AS'], ['AH', 'AC', 'AD']], 'invalid'], [[[], ['3C']], 'ok'], [[['QD'], ['QH']], 'ok'], [[['JD', 'JS'], ['TD', 'TS', 'TC', 'TH']], 'invalid'], [[['9S', '9H'], ['8S', '8C']], 'invalid'], [[['6C', '6H'], ['6D', '6S']], 'ok'], [[['KD', 'KS'], ['KS', 'KC']], 'invalid']], [[[['9D', '9C'], ['9D', '9C']], 'invalid'], [[['KD'], ['AH']], 'ok'], [[[], ['KS', 'KD']], 'ok'], [[['JC'], ['7C']], 'invalid'], [[['5S'], ['5H']], 'invalid'], [[['2S'], ['5D']], 'invalid'], [[['JH', 'JS', 'JD'], ['JS', 'JD', 'JH']], 'invalid'], [[['7C', '7S', '7D'], ['7S', '7H', '7C']], 'invalid']], [[[['JH', 'JC'], ['JC', 'JS']], 'ok'], [[['7C'], ['2D']], 'ok'], [[['2H'], ['2H']], 'invalid'], [[['TH', 'TD'], ['8D', '2S']], 'invalid'], [[['5H', '5D'], ['JS', 'JC']], 'ok'], [[[], ['QC', 'QH']], 'ok'], [[['QD', 'QS'], ['QH', 'QD']], 'invalid'], [[['3C', '3H'], ['3S', '3C']], 'ok']], [[[['6C', '6H'], ['AH', '4D']], 'invalid'], [[['3D', '3H', '3C'], ['3S', '3D', '3H', 'AC']], 'invalid'], [[['5S'], ['3S']], 'invalid'], [[['9C'], ['9C']], 'invalid'], [[['7C', '7S', '7D'], ['3D', '3S', '3C']], 'invalid'], [[['3H', '3C'], ['3D', '3C', '3S', '3H']], 'invalid'], [[['5C', '5H'], ['5D', '5S']], 'ok'], [[['5D', '5S'], ['5C', '5H']], 'invalid']]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"play 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"},"fixed":{"sha256":"63cfecfb3e4b8c7f658ab905e3bbd2663a5f7db065be3428a5512531f29f99bd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cur, play = x\n    order = '3456789TJQKA2'\n    suits = 'DCHS'\n    def key(c):\n        return (order.index(c[0]), suits.index(c[1]))\n    if not play:\n        return 'pass'\n    if len(set(c[0] for c in play)) != 1 or len(play) > 3:\n        return 'invalid'\n    if not cur:\n        return 'ok'\n    if len(play) != len(cur):\n        return 'invalid'\n    if max(key(c) for c in play) > max(key(c) for c in cur):\n        return 'ok'\n    return 'invalid'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[], ['KD']], 'ok'], [[['KC', 'KD'], ['KH', 'KS']], 'ok'], [[['8S', '8C', '8H'], ['KD', 'KC', 'KS']], 'ok'], [[['6S'], ['6H']], 'invalid'], [[['9C'], ['6S']], 'invalid'], [[[], ['3H', '3S', '3C']], 'ok'], [[['3C', '3H'], ['3S', '3D']], 'ok'], [[['9D', '9H', '9C'], ['9D', '9H', '9S']], 'ok']], [[[['8D', '8H'], ['8S', '8D', '8H', '8C']], 'invalid'], [[['AS'], ['AH', 'AC', 'AD']], 'invalid'], [[[], ['3C']], 'ok'], [[['QD'], ['QH']], 'ok'], [[['JD', 'JS'], ['TD', 'TS', 'TC', 'TH']], 'invalid'], [[['9S', '9H'], ['8S', '8C']], 'invalid'], [[['6C', '6H'], ['6D', '6S']], 'ok'], [[['KD', 'KS'], ['KS', 'KC']], 'invalid']], [[[['9D', '9C'], ['9D', '9C']], 'invalid'], [[['KD'], ['AH']], 'ok'], [[[], ['KS', 'KD']], 'ok'], [[['JC'], ['7C']], 'invalid'], [[['5S'], ['5H']], 'invalid'], [[['2S'], ['5D']], 'invalid'], [[['JH', 'JS', 'JD'], ['JS', 'JD', 'JH']], 'invalid'], [[['7C', '7S', '7D'], ['7S', '7H', '7C']], 'invalid']], [[[['JH', 'JC'], ['JC', 'JS']], 'ok'], [[['7C'], ['2D']], 'ok'], [[['2H'], ['2H']], 'invalid'], [[['TH', 'TD'], ['8D', '2S']], 'invalid'], [[['5H', '5D'], ['JS', 'JC']], 'ok'], [[[], ['QC', 'QH']], 'ok'], [[['QD', 'QS'], ['QH', 'QD']], 'invalid'], [[['3C', '3H'], ['3S', '3C']], 'ok']], [[[['6C', '6H'], ['AH', '4D']], 'invalid'], [[['3D', '3H', '3C'], ['3S', '3D', '3H', 'AC']], 'invalid'], [[['5S'], ['3S']], 'invalid'], [[['9C'], ['9C']], 'invalid'], [[['7C', '7S', '7D'], ['3D', '3S', '3C']], 'invalid'], [[['3H', '3C'], ['3D', '3C', '3S', '3H']], 'invalid'], [[['5C', '5H'], ['5D', '5S']], 'ok'], [[['5D', '5S'], ['5C', '5H']], 'invalid']]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"play 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-big-two-pair-comparison-card","generated_at":"2026-09-29T14:50:24.579060+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.","repair":"Compare the highest card of each combination.","root_cause":"Combinations are compared on their minimum key.","sha256":"e1b4697d721f4f3558533a77c6ac97a964a41755ccb96289790a63ce2f0658c5","title":"Pairs are compared by their lowest suit · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.425,"exit_code":1,"observations":[{"actual":"ok","check":"play case 0","expected":"ok","passed":true},{"actual":"ok","check":"play case 1","expected":"ok","passed":true},{"actual":"ok","check":"play case 2","expected":"ok","passed":true},{"actual":"invalid","check":"play case 3","expected":"invalid","passed":true},{"actual":"invalid","check":"play case 4","expected":"invalid","passed":true},{"actual":"ok","check":"play case 5","expected":"ok","passed":true},{"actual":"ok","check":"play case 6","expected":"ok","passed":true},{"actual":"invalid","check":"play case 7","expected":"ok","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"play case 0\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 1\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 2\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 3\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 4\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 5\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 6\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 7\", \"actual\": \"invalid\", \"expected\": \"ok\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.829,"exit_code":1,"observations":[{"actual":"ok","check":"play case 0","expected":"ok","passed":true},{"actual":"ok","check":"play case 1","expected":"ok","passed":true},{"actual":"ok","check":"play case 2","expected":"ok","passed":true},{"actual":"invalid","check":"play case 3","expected":"invalid","passed":true},{"actual":"invalid","check":"play case 4","expected":"invalid","passed":true},{"actual":"ok","check":"play case 5","expected":"ok","passed":true},{"actual":"invalid","check":"play case 6","expected":"ok","passed":false},{"actual":"invalid","check":"play case 7","expected":"ok","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"play case 0\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 1\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 2\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 3\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 4\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 5\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 6\", \"actual\": \"invalid\", \"expected\": \"ok\", \"passed\": false}, {\"check\": \"play case 7\", \"actual\": \"invalid\", \"expected\": \"ok\", \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.473,"exit_code":0,"observations":[{"actual":"ok","check":"play case 0","expected":"ok","passed":true},{"actual":"ok","check":"play case 1","expected":"ok","passed":true},{"actual":"ok","check":"play case 2","expected":"ok","passed":true},{"actual":"invalid","check":"play case 3","expected":"invalid","passed":true},{"actual":"invalid","check":"play case 4","expected":"invalid","passed":true},{"actual":"ok","check":"play case 5","expected":"ok","passed":true},{"actual":"ok","check":"play case 6","expected":"ok","passed":true},{"actual":"ok","check":"play case 7","expected":"ok","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"play case 0\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 1\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 2\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 3\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 4\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 5\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 6\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 7\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}