{"abstract":"The tab workspace reports an incorrect horizontal anchor.","category":"Tab interfaces","checks":7,"contract":"Detach a tab into a new window at pointer minus drag anchor, clamp within work area, copy zoom, assign new window ownership and keep original document identity.","evaluation_group":"s3-tabs-detach-window-geometry","failed_approach":"The partial repair max(0,min(x['px'],x['screen_w']-x['width'])) still violates a workspace boundary or normal case.","family":"s3-tab-interfaces-detach-window-geometry-horizontal-anchor","id":"FA-35911","implementations":{"attempt":{"sha256":"611003347eecc64cc062e66631968578f0209835464c763cde9c00a9deb6ae73","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = max(0,min(x['px'],x['screen_w']-x['width']))\n    r1 = max(0,min(x['py']-x['anchor_y'],x['screen_h']-x['height']))\n    r2 = x['new_window']\n    r3 = x['document']\n    r4 = x['zoom']\n    r5 = x['width']>x['screen_w'] or x['height']>x['screen_h']\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: [({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 288, 'w2', 'd', 125, False]), ({'px': 10, 'py': 5, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 125, False]), ({'px': 790, 'py': 590, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 300, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 0, 'anchor_y': 0, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 300, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 80, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 288, 'w2', 'd', 80, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 500, 'screen_h': 400, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [100, 100, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 400, 'screen_h': 300, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 125, False])], 2: [({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 576, 'w2', 'd', 250, False]), ({'px': 20, 'py': 10, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 250, False]), ({'px': 1580, 'py': 1180, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 600, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 0, 'anchor_y': 0, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 600, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 160, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 576, 'w2', 'd', 160, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1000, 'screen_h': 800, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [200, 200, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 800, 'screen_h': 600, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 250, False])], 3: [({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 864, 'w2', 'd', 375, False]), ({'px': 30, 'py': 15, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 375, False]), ({'px': 2370, 'py': 1770, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 900, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 0, 'anchor_y': 0, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 900, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 240, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 864, 'w2', 'd', 240, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 1500, 'screen_h': 1200, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [300, 300, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 1200, 'screen_h': 900, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 375, False])], 4: [({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1152, 'w2', 'd', 500, False]), ({'px': 40, 'py': 20, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 500, False]), ({'px': 3160, 'py': 2360, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1200, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 0, 'anchor_y': 0, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1200, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 320, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1152, 'w2', 'd', 320, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 2000, 'screen_h': 1600, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 400, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 500, False])], 5: [({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1440, 'w2', 'd', 625, False]), ({'px': 50, 'py': 25, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 625, False]), ({'px': 3950, 'py': 2950, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 0, 'anchor_y': 0, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 400, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1440, 'w2', 'd', 400, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 2500, 'screen_h': 2000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [500, 500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 2000, 'screen_h': 1500, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 625, False])]}\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":"e2f261032fc66a2a5f17a9e2734eae77880e44dcbd2c2e1d9a90e342d8d6616a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = x['px']\n    r1 = max(0,min(x['py']-x['anchor_y'],x['screen_h']-x['height']))\n    r2 = x['new_window']\n    r3 = x['document']\n    r4 = x['zoom']\n    r5 = x['width']>x['screen_w'] or x['height']>x['screen_h']\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: [({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 288, 'w2', 'd', 125, False]), ({'px': 10, 'py': 5, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 125, False]), ({'px': 790, 'py': 590, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 300, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 0, 'anchor_y': 0, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 300, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 80, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 288, 'w2', 'd', 80, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 500, 'screen_h': 400, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [100, 100, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 400, 'screen_h': 300, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 125, False])], 2: [({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 576, 'w2', 'd', 250, False]), ({'px': 20, 'py': 10, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 250, False]), ({'px': 1580, 'py': 1180, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 600, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 0, 'anchor_y': 0, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 600, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 160, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 576, 'w2', 'd', 160, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1000, 'screen_h': 800, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [200, 200, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 800, 'screen_h': 600, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 250, False])], 3: [({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 864, 'w2', 'd', 375, False]), ({'px': 30, 'py': 15, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 375, False]), ({'px': 2370, 'py': 1770, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 900, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 0, 'anchor_y': 0, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 900, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 240, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 864, 'w2', 'd', 240, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 1500, 'screen_h': 1200, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [300, 300, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 1200, 'screen_h': 900, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 375, False])], 4: [({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1152, 'w2', 'd', 500, False]), ({'px': 40, 'py': 20, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 500, False]), ({'px': 3160, 'py': 2360, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1200, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 0, 'anchor_y': 0, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1200, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 320, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1152, 'w2', 'd', 320, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 2000, 'screen_h': 1600, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 400, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 500, False])], 5: [({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1440, 'w2', 'd', 625, False]), ({'px': 50, 'py': 25, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 625, False]), ({'px': 3950, 'py': 2950, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 0, 'anchor_y': 0, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 400, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1440, 'w2', 'd', 400, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 2500, 'screen_h': 2000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [500, 500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 2000, 'screen_h': 1500, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 625, False])]}\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":"91add68c90553e127da2ebd8a1a1ea3a4fbce9931d639f2f7703bb47de40d64a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    r0 = max(0,min(x['px']-x['anchor_x'],x['screen_w']-x['width']))\n    r1 = max(0,min(x['py']-x['anchor_y'],x['screen_h']-x['height']))\n    r2 = x['new_window']\n    r3 = x['document']\n    r4 = x['zoom']\n    r5 = x['width']>x['screen_w'] or x['height']>x['screen_h']\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: [({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 288, 'w2', 'd', 125, False]), ({'px': 10, 'py': 5, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 125, False]), ({'px': 790, 'py': 590, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 300, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 0, 'anchor_y': 0, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 300, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 800, 'screen_h': 600, 'zoom': 80, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 288, 'w2', 'd', 80, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 500, 'screen_h': 400, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [100, 100, 'w2', 'd', 125, False]), ({'px': 450, 'py': 300, 'anchor_x': 40, 'anchor_y': 12, 'width': 400, 'height': 300, 'screen_w': 400, 'screen_h': 300, 'zoom': 125, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 125, False])], 2: [({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 576, 'w2', 'd', 250, False]), ({'px': 20, 'py': 10, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 250, False]), ({'px': 1580, 'py': 1180, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 600, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 0, 'anchor_y': 0, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 600, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 160, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [800, 576, 'w2', 'd', 160, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 1000, 'screen_h': 800, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [200, 200, 'w2', 'd', 250, False]), ({'px': 900, 'py': 600, 'anchor_x': 80, 'anchor_y': 24, 'width': 800, 'height': 600, 'screen_w': 800, 'screen_h': 600, 'zoom': 250, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 250, False])], 3: [({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 864, 'w2', 'd', 375, False]), ({'px': 30, 'py': 15, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 375, False]), ({'px': 2370, 'py': 1770, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 900, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 0, 'anchor_y': 0, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 900, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 2400, 'screen_h': 1800, 'zoom': 240, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1200, 864, 'w2', 'd', 240, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 1500, 'screen_h': 1200, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [300, 300, 'w2', 'd', 375, False]), ({'px': 1350, 'py': 900, 'anchor_x': 120, 'anchor_y': 36, 'width': 1200, 'height': 900, 'screen_w': 1200, 'screen_h': 900, 'zoom': 375, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 375, False])], 4: [({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1152, 'w2', 'd', 500, False]), ({'px': 40, 'py': 20, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 500, False]), ({'px': 3160, 'py': 2360, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1200, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 0, 'anchor_y': 0, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1200, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 3200, 'screen_h': 2400, 'zoom': 320, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [1600, 1152, 'w2', 'd', 320, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 2000, 'screen_h': 1600, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [400, 400, 'w2', 'd', 500, False]), ({'px': 1800, 'py': 1200, 'anchor_x': 160, 'anchor_y': 48, 'width': 1600, 'height': 1200, 'screen_w': 1600, 'screen_h': 1200, 'zoom': 500, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 500, False])], 5: [({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1440, 'w2', 'd', 625, False]), ({'px': 50, 'py': 25, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 625, False]), ({'px': 3950, 'py': 2950, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 0, 'anchor_y': 0, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 4000, 'screen_h': 3000, 'zoom': 400, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [2000, 1440, 'w2', 'd', 400, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 2500, 'screen_h': 2000, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [500, 500, 'w2', 'd', 625, False]), ({'px': 2250, 'py': 1500, 'anchor_x': 200, 'anchor_y': 60, 'width': 2000, 'height': 1500, 'screen_w': 2000, 'screen_h': 1500, 'zoom': 625, 'document': 'd', 'old_window': 'w1', 'new_window': 'w2'}, [0, 0, 'w2', 'd', 625, False])]}\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-detach-window-geometry-horizontal-anchor","generated_at":"2026-09-29T14:42:46.085893+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: max(0,min(x['px']-x['anchor_x'],x['screen_w']-x['width'])).","root_cause":"The horizontal anchor decision uses x['px'] instead of max(0,min(x['px']-x['anchor_x'],x['screen_w']-x['width'])).","sha256":"6d88a0c202b2fa2d2825f02d2dcadf14f45782bfd4d6e654452da890380b9409","title":"Detach window geometry: horizontal anchor · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.71,"exit_code":1,"observations":[{"actual":[400,288,"w2","d",125,false],"check":"workspace regression 0","expected":[400,288,"w2","d",125,false],"passed":true},{"actual":[10,0,"w2","d",125,false],"check":"workspace regression 1","expected":[0,0,"w2","d",125,false],"passed":false},{"actual":[400,300,"w2","d",125,false],"check":"workspace regression 2","expected":[400,300,"w2","d",125,false],"passed":true},{"actual":[400,300,"w2","d",125,false],"check":"workspace regression 3","expected":[400,300,"w2","d",125,false],"passed":true},{"actual":[400,288,"w2","d",80,false],"check":"workspace regression 4","expected":[400,288,"w2","d",80,false],"passed":true},{"actual":[100,100,"w2","d",125,false],"check":"workspace regression 5","expected":[100,100,"w2","d",125,false],"passed":true},{"actual":[0,0,"w2","d",125,false],"check":"workspace regression 6","expected":[0,0,"w2","d",125,false],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [400, 288, \"w2\", \"d\", 125, false], \"expected\": [400, 288, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [10, 0, \"w2\", \"d\", 125, false], \"expected\": [0, 0, \"w2\", \"d\", 125, false], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [400, 300, \"w2\", \"d\", 125, false], \"expected\": [400, 300, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [400, 300, \"w2\", \"d\", 125, false], \"expected\": [400, 300, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [400, 288, \"w2\", \"d\", 80, false], \"expected\": [400, 288, \"w2\", \"d\", 80, false], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [100, 100, \"w2\", \"d\", 125, false], \"expected\": [100, 100, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 6\", \"actual\": [0, 0, \"w2\", \"d\", 125, false], \"expected\": [0, 0, \"w2\", \"d\", 125, false], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":44.162,"exit_code":1,"observations":[{"actual":[450,288,"w2","d",125,false],"check":"workspace regression 0","expected":[400,288,"w2","d",125,false],"passed":false},{"actual":[10,0,"w2","d",125,false],"check":"workspace regression 1","expected":[0,0,"w2","d",125,false],"passed":false},{"actual":[790,300,"w2","d",125,false],"check":"workspace regression 2","expected":[400,300,"w2","d",125,false],"passed":false},{"actual":[450,300,"w2","d",125,false],"check":"workspace regression 3","expected":[400,300,"w2","d",125,false],"passed":false},{"actual":[450,288,"w2","d",80,false],"check":"workspace regression 4","expected":[400,288,"w2","d",80,false],"passed":false},{"actual":[450,100,"w2","d",125,false],"check":"workspace regression 5","expected":[100,100,"w2","d",125,false],"passed":false},{"actual":[450,0,"w2","d",125,false],"check":"workspace regression 6","expected":[0,0,"w2","d",125,false],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [450, 288, \"w2\", \"d\", 125, false], \"expected\": [400, 288, \"w2\", \"d\", 125, false], \"passed\": false}, {\"check\": \"workspace regression 1\", \"actual\": [10, 0, \"w2\", \"d\", 125, false], \"expected\": [0, 0, \"w2\", \"d\", 125, false], \"passed\": false}, {\"check\": \"workspace regression 2\", \"actual\": [790, 300, \"w2\", \"d\", 125, false], \"expected\": [400, 300, \"w2\", \"d\", 125, false], \"passed\": false}, {\"check\": \"workspace regression 3\", \"actual\": [450, 300, \"w2\", \"d\", 125, false], \"expected\": [400, 300, \"w2\", \"d\", 125, false], \"passed\": false}, {\"check\": \"workspace regression 4\", \"actual\": [450, 288, \"w2\", \"d\", 80, false], \"expected\": [400, 288, \"w2\", \"d\", 80, false], \"passed\": false}, {\"check\": \"workspace regression 5\", \"actual\": [450, 100, \"w2\", \"d\", 125, false], \"expected\": [100, 100, \"w2\", \"d\", 125, false], \"passed\": false}, {\"check\": \"workspace regression 6\", \"actual\": [450, 0, \"w2\", \"d\", 125, false], \"expected\": [0, 0, \"w2\", \"d\", 125, false], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.682,"exit_code":0,"observations":[{"actual":[400,288,"w2","d",125,false],"check":"workspace regression 0","expected":[400,288,"w2","d",125,false],"passed":true},{"actual":[0,0,"w2","d",125,false],"check":"workspace regression 1","expected":[0,0,"w2","d",125,false],"passed":true},{"actual":[400,300,"w2","d",125,false],"check":"workspace regression 2","expected":[400,300,"w2","d",125,false],"passed":true},{"actual":[400,300,"w2","d",125,false],"check":"workspace regression 3","expected":[400,300,"w2","d",125,false],"passed":true},{"actual":[400,288,"w2","d",80,false],"check":"workspace regression 4","expected":[400,288,"w2","d",80,false],"passed":true},{"actual":[100,100,"w2","d",125,false],"check":"workspace regression 5","expected":[100,100,"w2","d",125,false],"passed":true},{"actual":[0,0,"w2","d",125,false],"check":"workspace regression 6","expected":[0,0,"w2","d",125,false],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"workspace regression 0\", \"actual\": [400, 288, \"w2\", \"d\", 125, false], \"expected\": [400, 288, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 1\", \"actual\": [0, 0, \"w2\", \"d\", 125, false], \"expected\": [0, 0, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 2\", \"actual\": [400, 300, \"w2\", \"d\", 125, false], \"expected\": [400, 300, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 3\", \"actual\": [400, 300, \"w2\", \"d\", 125, false], \"expected\": [400, 300, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 4\", \"actual\": [400, 288, \"w2\", \"d\", 80, false], \"expected\": [400, 288, \"w2\", \"d\", 80, false], \"passed\": true}, {\"check\": \"workspace regression 5\", \"actual\": [100, 100, \"w2\", \"d\", 125, false], \"expected\": [100, 100, \"w2\", \"d\", 125, false], \"passed\": true}, {\"check\": \"workspace regression 6\", \"actual\": [0, 0, \"w2\", \"d\", 125, false], \"expected\": [0, 0, \"w2\", \"d\", 125, false], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}