{"abstract":"near-duplicate chain is split into separate groups.","category":"Dataset deduplication grouping","checks":6,"contract":"Pairs [left,right] define undirected edges. Return sorted connected components including isolated nodes.","contract_signature":"nodes, edges","evaluation_group":"dedup-connected-components","failed_approach":"Grouping each item with its immediate neighbor fails when edges form a longer chain.","family":"w3-dataset-deduplication-grouping-connected-components-transitivity","id":"FA-100291","implementations":{"attempt":{"sha256":"b10b98688735de318cd5ee8222b0f390b6d0a1246b8d78815d89616966eb7d48","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(nodes, edges):\n    return [sorted([a,b]) for a,b in edges]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('three node chain',solve(['a','b','c'],[['a','b'],['b','c']]),[['a','b','c']])\ncheck('separate pair',solve(['a','b','c'],[['a','b']]),[['a','b'],['c']])\ncheck('empty',solve([],[]),[])\ncheck('isolated nodes',solve(['b','a'],[]),[['a'],['b']])\ncheck('cycle',solve(['a','b','c'],[['a','b'],['b','c'],['c','a']]),[['a','b','c']])\ncheck('duplicate edge',solve(['a','b'],[['a','b'],['a','b']]),[['a','b']])\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":"91190bf6f752796fbc195ef39ec46f1ac3374f19d84cff0ac546c8ec705b80f1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(nodes, edges):\n    return [[x] for x in sorted(nodes)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('three node chain',solve(['a','b','c'],[['a','b'],['b','c']]),[['a','b','c']])\ncheck('separate pair',solve(['a','b','c'],[['a','b']]),[['a','b'],['c']])\ncheck('empty',solve([],[]),[])\ncheck('isolated nodes',solve(['b','a'],[]),[['a'],['b']])\ncheck('cycle',solve(['a','b','c'],[['a','b'],['b','c'],['c','a']]),[['a','b','c']])\ncheck('duplicate edge',solve(['a','b'],[['a','b'],['a','b']]),[['a','b']])\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":"Inputs are small in-memory fixtures with the stated contract; results do not claim production deduplication quality. 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":"w3-dataset-deduplication-grouping-connected-components-transitivity","generated_at":"2026-09-30T16:48:34.014915+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"This deterministic toy operation makes one dataset equivalence or representative rule explicit.","root_cause":"Pairs are compared only against the current representative, so similarity is treated as transitive only locally.","sha256":"9c01d9586c07cf34908af0ffd59bdf5b87cb962eec1686f90e5ab9cc442227ea","title":"Dataset deduplication: near-duplicate chain is split into separate groups · case 01","variant":1,"variant_policy":"The same explicitly authored fixtures repeat across all five numbered records; runtime N is unused. These records share one mechanism and must remain together in evaluation splits.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":29.581,"exit_code":1,"observations":[{"actual":[["a","b"],["b","c"]],"check":"three node chain","expected":[["a","b","c"]],"passed":false},{"actual":[["a","b"]],"check":"separate pair","expected":[["a","b"],["c"]],"passed":false},{"actual":[],"check":"empty","expected":[],"passed":true},{"actual":[],"check":"isolated nodes","expected":[["a"],["b"]],"passed":false},{"actual":[["a","b"],["b","c"],["a","c"]],"check":"cycle","expected":[["a","b","c"]],"passed":false},{"actual":[["a","b"],["a","b"]],"check":"duplicate edge","expected":[["a","b"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"three node chain\", \"actual\": [[\"a\", \"b\"], [\"b\", \"c\"]], \"expected\": [[\"a\", \"b\", \"c\"]], \"passed\": false}, {\"check\": \"separate pair\", \"actual\": [[\"a\", \"b\"]], \"expected\": [[\"a\", \"b\"], [\"c\"]], \"passed\": false}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"isolated nodes\", \"actual\": [], \"expected\": [[\"a\"], [\"b\"]], \"passed\": false}, {\"check\": \"cycle\", \"actual\": [[\"a\", \"b\"], [\"b\", \"c\"], [\"a\", \"c\"]], \"expected\": [[\"a\", \"b\", \"c\"]], \"passed\": false}, {\"check\": \"duplicate edge\", \"actual\": [[\"a\", \"b\"], [\"a\", \"b\"]], \"expected\": [[\"a\", \"b\"]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":28.555,"exit_code":1,"observations":[{"actual":[["a"],["b"],["c"]],"check":"three node chain","expected":[["a","b","c"]],"passed":false},{"actual":[["a"],["b"],["c"]],"check":"separate pair","expected":[["a","b"],["c"]],"passed":false},{"actual":[],"check":"empty","expected":[],"passed":true},{"actual":[["a"],["b"]],"check":"isolated nodes","expected":[["a"],["b"]],"passed":true},{"actual":[["a"],["b"],["c"]],"check":"cycle","expected":[["a","b","c"]],"passed":false},{"actual":[["a"],["b"]],"check":"duplicate edge","expected":[["a","b"]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"three node chain\", \"actual\": [[\"a\"], [\"b\"], [\"c\"]], \"expected\": [[\"a\", \"b\", \"c\"]], \"passed\": false}, {\"check\": \"separate pair\", \"actual\": [[\"a\"], [\"b\"], [\"c\"]], \"expected\": [[\"a\", \"b\"], [\"c\"]], \"passed\": false}, {\"check\": \"empty\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"isolated nodes\", \"actual\": [[\"a\"], [\"b\"]], \"expected\": [[\"a\"], [\"b\"]], \"passed\": true}, {\"check\": \"cycle\", \"actual\": [[\"a\"], [\"b\"], [\"c\"]], \"expected\": [[\"a\", \"b\", \"c\"]], \"passed\": false}, {\"check\": \"duplicate edge\", \"actual\": [[\"a\"], [\"b\"]], \"expected\": [[\"a\", \"b\"]], \"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."}}