{"abstract":"The tab workspace reports an incorrect renamed basename.","category":"Tab interfaces","checks":6,"contract":"Renaming an open document updates path and basename for every view of that document while retaining view IDs, dirty state and unrelated document labels.","evaluation_group":"s3-tabs-open-document-rename","failed_approach":"The partial repair x['new_path'] still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-open-document-rename-renamed-basename","id":"FA-36246","implementations":{"attempt":{"sha256":"ad777ae5a9a10f8ee8e64761c28d73823af9a74a4179c59a279842e85bff740e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = [v for v,d in x['views'].items() if d==x['renamed']]\n    r1 = x['new_path']\n    r2 = {d:(x['new_path'] if d==x['renamed'] else p) for d,p in x['paths'].items()}\n    r3 = list(x['views'])\n    r4 = x['dirty']\n    r5 = x['active']\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3'])], 2: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3'])], 3: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3'])], 4: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3'])], 5: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e', 'extra3': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2', 'extra3'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3'])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"b15e5a69324b98cf0a64b29c8ba10c00a39b2363199c7f942aedfa978eb2792a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = [v for v,d in x['views'].items() if d==x['renamed']]\n    r1 = x['paths'][x['renamed']].rsplit('/',1)[-1]\n    r2 = {d:(x['new_path'] if d==x['renamed'] else p) for d,p in x['paths'].items()}\n    r3 = list(x['views'])\n    r4 = x['dirty']\n    r5 = x['active']\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3'])], 2: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3'])], 3: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3'])], 4: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3'])], 5: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e', 'extra3': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2', 'extra3'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3'])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"7232e6142b2cf2f9785932a66360b98cba6550709310a491b02ced51748f973a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = [v for v,d in x['views'].items() if d==x['renamed']]\n    r1 = x['new_path'].rsplit('/',1)[-1]\n    r2 = {d:(x['new_path'] if d==x['renamed'] else p) for d,p in x['paths'].items()}\n    r3 = list(x['views'])\n    r4 = x['dirty']\n    r5 = x['active']\n    return [r0,r1,r2,r3,r4,r5]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3'], ['d'], 'v3'])], 2: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0'], ['d'], 'v3'])], 3: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1'], ['d'], 'v3'])], 4: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2'], ['d'], 'v3'])], 5: [({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'e', 'extra1': 'e', 'extra2': 'e', 'extra3': 'e'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'e', 'new_path': '/new/z.txt', 'dirty': ['d'], 'active': 'v3'}, [['v2', 'extra0', 'extra1', 'extra2', 'extra3'], 'z.txt', {'d': '/old/a.txt', 'e': '/new/z.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': [], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], [], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/new/c.txt', 'dirty': ['d'], 'active': 'v2'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': '/new/c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v2']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': 'c.txt', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'c.txt', {'d': 'c.txt', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3']), ({'views': {'v1': 'd', 'v2': 'e', 'v3': 'd', 'extra0': 'd', 'extra1': 'd', 'extra2': 'd', 'extra3': 'd'}, 'paths': {'d': '/old/a.txt', 'e': '/other/b.txt'}, 'renamed': 'd', 'new_path': '/deep/path/report.md', 'dirty': ['d'], 'active': 'v3'}, [['v1', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], 'report.md', {'d': '/deep/path/report.md', 'e': '/other/b.txt'}, ['v1', 'v2', 'v3', 'extra0', 'extra1', 'extra2', 'extra3'], ['d'], 'v3'])]}\nfor i, (inputs, expected) in enumerate(fixtures[N]):\n    check(\"workspace regression \"+str(i), solve(inputs), 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":"Finite stipulated workspace snapshots only. Independent result fields describe observable obligations, not a full UI runtime. 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":"s3-tab-interfaces-open-document-rename-renamed-basename","generated_at":"2026-09-29T14:42:49.406618+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Offline tab/panel workspace behavior; no browser or desktop framework is emulated.","repair":"Use the stipulated workspace rule: x['new_path'].rsplit('/',1)[-1].","root_cause":"The renamed basename decision uses x['paths'][x['renamed']].rsplit('/',1)[-1] instead of x['new_path'].rsplit('/',1)[-1].","sha256":"89af756dc727b9c745822dfdbf8f991c052ac7adf2ad8ba5ee6a74b7c09311e5","title":"Open document rename: renamed basename · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.708,"exit_code":1,"observations":[{"actual":[["v1","v3"],"/new/c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 0","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v2"],"/new/z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 1","expected":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"/new/c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"check":"workspace regression 2","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"passed":false},{"actual":[["v1","v3"],"/new/c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"check":"workspace regression 3","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"passed":false},{"actual":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 4","expected":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":true},{"actual":[["v1","v3"],"/deep/path/report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 5","expected":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"v1\", \"v3\"], \"/new/c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [[\"v2\"], \"/new/z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [[\"v1\", \"v3\"], \"/new/c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [[\"v1\", \"v3\"], \"/new/c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [[\"v1\", \"v3\"], \"/deep/path/report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":45.929,"exit_code":1,"observations":[{"actual":[["v1","v3"],"a.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 0","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v2"],"b.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 1","expected":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"a.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"check":"workspace regression 2","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"passed":false},{"actual":[["v1","v3"],"a.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"check":"workspace regression 3","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"passed":false},{"actual":[["v1","v3"],"a.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 4","expected":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false},{"actual":[["v1","v3"],"a.txt",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 5","expected":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"v1\", \"v3\"], \"a.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [[\"v2\"], \"b.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [[\"v1\", \"v3\"], \"a.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [[\"v1\", \"v3\"], \"a.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [[\"v1\", \"v3\"], \"a.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [[\"v1\", \"v3\"], \"a.txt\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.843,"exit_code":0,"observations":[{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 0","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":true},{"actual":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 1","expected":[["v2"],"z.txt",{"d":"/old/a.txt","e":"/new/z.txt"},["v1","v2","v3"],["d"],"v3"],"passed":true},{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"check":"workspace regression 2","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],[],"v3"],"passed":true},{"actual":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"check":"workspace regression 3","expected":[["v1","v3"],"c.txt",{"d":"/new/c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v2"],"passed":true},{"actual":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 4","expected":[["v1","v3"],"c.txt",{"d":"c.txt","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":true},{"actual":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"check":"workspace regression 5","expected":[["v1","v3"],"report.md",{"d":"/deep/path/report.md","e":"/other/b.txt"},["v1","v2","v3"],["d"],"v3"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v2\"], \"z.txt\", {\"d\": \"/old/a.txt\", \"e\": \"/new/z.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [], \"v3\"], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"/new/c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v2\"], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"c.txt\", {\"d\": \"c.txt\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"expected\": [[\"v1\", \"v3\"], \"report.md\", {\"d\": \"/deep/path/report.md\", \"e\": \"/other/b.txt\"}, [\"v1\", \"v2\", \"v3\"], [\"d\"], \"v3\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}