{"abstract":"Vertices right after a kept vertex are judged against the wrong base segment.","category":"GIS polygon topology","checks":8,"contract":"Input [points, tol]: an arc as integer [x, y] positions (possibly closed, first == last). Keep both endpoints; recursively (explicit stack) find the interior vertex farthest from the SEGMENT between the current endpoints (projection clamped to the segment; distance to the point itself if the endpoints coincide), taking the first maximum; keep it and split when that distance is strictly greater than tol. Return kept positions in order.","contract_signature":"x","evaluation_group":"w2-gis-polygon-topology-douglas-peucker-arc","failed_approach":"The left sub-arc now ends one vertex early.","family":"w2-gis-polygon-topology-douglas-peucker-arc-sub-arc-split-bounds","id":"FA-70601","implementations":{"attempt":{"sha256":"440d1f9ae1821d110564f776d7fc9dccfb4206e5abbce59ca0921627b3ff428e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    pts, tol = x\n    def dist(p, a, b):\n        dx, dy = b[0] - a[0], b[1] - a[1]\n        if dx == 0 and dy == 0:\n            return math.hypot(p[0] - a[0], p[1] - a[1])\n        t = ((p[0] - a[0]) * dx + (p[1] - a[1]) * dy) / (dx * dx + dy * dy)\n        t = max(0.0, min(1.0, t))\n        return math.hypot(p[0] - a[0] - t * dx, p[1] - a[1] - t * dy)\n    keep = [False] * len(pts)\n    keep[0] = keep[-1] = True\n    stack = [(0, len(pts) - 1)]\n    while stack:\n        i, j = stack.pop()\n        best, idx = -1.0, -1\n        for k in range(i + 1, j):\n            d = dist(pts[k], pts[i], pts[j])\n            if d > best:\n                best, idx = d, k\n        if idx != -1 and best > tol:\n            keep[idx] = True\n            stack.append((i, idx - 1))\n            stack.append((idx, j))\n    return [p for p, f in zip(pts, keep) if f]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control #0', [[[0, 0], [3, 1], [6, -1], [9, 1], [12, 1], [15, 4], [18, 1], [21, -2], [24, 1]], 2], [[0, 0], [6, -1], [15, 4], [21, -2], [24, 1]]), ('control #1', [[[0, 3], [3, -4], [6, 1], [9, 3], [12, -4], [15, 1], [18, -1]], 1], [[0, 3], [3, -4], [9, 3], [12, -4], [15, 1], [18, -1]]), ('control #2', [[[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]], 0], [[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]]), ('control #3', [[[0, -3], [3, -1], [6, -3], [9, -2]], 3], [[0, -3], [9, -2]]), ('control #4', [[[0, -2], [3, -4], [6, -1], [9, -4], [12, 1], [15, 2]], 3], [[0, -2], [9, -4], [15, 2]]), ('control #5', [[[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], 0], [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]]), ('control #6', [[[0, 4], [3, -1], [6, 2], [9, 2], [12, 2]], 3], [[0, 4], [3, -1], [12, 2]]), ('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]])], [('control #2', [[[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]], 0], [[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]]), ('control #4', [[[0, -2], [3, -4], [6, -1], [9, -4], [12, 1], [15, 2]], 3], [[0, -2], [9, -4], [15, 2]]), ('control #5', [[[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], 0], [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]]), ('control #6', [[[0, 4], [3, -1], [6, 2], [9, 2], [12, 2]], 3], [[0, 4], [3, -1], [12, 2]]), ('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]]), ('control #8', [[[0, -4], [3, -4], [6, 1], [9, 3], [12, 3], [15, -4]], 1], [[0, -4], [3, -4], [9, 3], [12, 3], [15, -4]]), ('control #9', [[[0, -3], [3, 4], [6, 0], [9, -4], [12, 0], [15, -1], [18, 4]], 0], [[0, -3], [3, 4], [9, -4], [12, 0], [15, -1], [18, 4]]), ('control #10', [[[0, -4], [3, -2], [6, 1], [9, 1]], 2], [[0, -4], [9, 1]])], [('control #5', [[[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], 0], [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]]), ('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]]), ('control #8', [[[0, -4], [3, -4], [6, 1], [9, 3], [12, 3], [15, -4]], 1], [[0, -4], [3, -4], [9, 3], [12, 3], [15, -4]]), ('control #9', [[[0, -3], [3, 4], [6, 0], [9, -4], [12, 0], [15, -1], [18, 4]], 0], [[0, -3], [3, 4], [9, -4], [12, 0], [15, -1], [18, 4]]), ('control #10', [[[0, -4], [3, -2], [6, 1], [9, 1]], 2], [[0, -4], [9, 1]]), ('control #11', [[[0, 4], [3, -3], [6, -2], [9, -4], [12, 4], [15, 4], [18, -1]], 2], [[0, 4], [3, -3], [9, -4], [12, 4], [18, -1]]), ('boundary #18', [[[0, 0], [5, 2], [10, 0]], 2], [[0, 0], [10, 0]]), ('boundary #19', [[[0, 0], [5, 3], [10, 0]], 2], [[0, 0], [5, 3], [10, 0]])], [('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]]), ('control #9', [[[0, -3], [3, 4], [6, 0], [9, -4], [12, 0], [15, -1], [18, 4]], 0], [[0, -3], [3, 4], [9, -4], [12, 0], [15, -1], [18, 4]]), ('control #11', [[[0, 4], [3, -3], [6, -2], [9, -4], [12, 4], [15, 4], [18, -1]], 2], [[0, 4], [3, -3], [9, -4], [12, 4], [18, -1]]), ('control #12', [[[0, 2], [3, -3], [6, 3], [9, -1]], 1], [[0, 2], [3, -3], [6, 3], [9, -1]]), ('control #13', [[[0, 4], [3, -1], [6, -4], [9, -2], [12, 4], [15, -3], [18, -1], [21, 0]], 3], [[0, 4], [6, -4], [12, 4], [15, -3], [21, 0]]), ('boundary #18', [[[0, 0], [5, 2], [10, 0]], 2], [[0, 0], [10, 0]]), ('boundary #19', [[[0, 0], [5, 3], [10, 0]], 2], [[0, 0], [5, 3], [10, 0]]), ('boundary #20', [[[0, 0], [10, 0]], 1], [[0, 0], [10, 0]])], [('control #8', [[[0, -4], [3, -4], [6, 1], [9, 3], [12, 3], [15, -4]], 1], [[0, -4], [3, -4], [9, 3], [12, 3], [15, -4]]), ('control #11', [[[0, 4], [3, -3], [6, -2], [9, -4], [12, 4], [15, 4], [18, -1]], 2], [[0, 4], [3, -3], [9, -4], [12, 4], [18, -1]]), ('regression #14', [[[0, 0], [10, 0], [14, 3], [20, 0]], 2], [[0, 0], [10, 0], [14, 3], [20, 0]]), ('regression #15', [[[0, 0], [5, 0], [-6, 1], [10, 0]], 2], [[0, 0], [5, 0], [-6, 1], [10, 0]]), ('regression #16', [[[0, 0], [4, 4], [8, 0], [4, -4], [0, 0]], 1], [[0, 0], [4, 4], [8, 0], [4, -4], [0, 0]]), ('boundary #18', [[[0, 0], [5, 2], [10, 0]], 2], [[0, 0], [10, 0]]), ('boundary #19', [[[0, 0], [5, 3], [10, 0]], 2], [[0, 0], [5, 3], [10, 0]]), ('boundary #20', [[[0, 0], [10, 0]], 1], [[0, 0], [10, 0]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, 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":"17f5f3993ae7c913ab35a74cbe6343c8e3c1a55914708b76e4fc2bff25bf0937","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    pts, tol = x\n    def dist(p, a, b):\n        dx, dy = b[0] - a[0], b[1] - a[1]\n        if dx == 0 and dy == 0:\n            return math.hypot(p[0] - a[0], p[1] - a[1])\n        t = ((p[0] - a[0]) * dx + (p[1] - a[1]) * dy) / (dx * dx + dy * dy)\n        t = max(0.0, min(1.0, t))\n        return math.hypot(p[0] - a[0] - t * dx, p[1] - a[1] - t * dy)\n    keep = [False] * len(pts)\n    keep[0] = keep[-1] = True\n    stack = [(0, len(pts) - 1)]\n    while stack:\n        i, j = stack.pop()\n        best, idx = -1.0, -1\n        for k in range(i + 1, j):\n            d = dist(pts[k], pts[i], pts[j])\n            if d > best:\n                best, idx = d, k\n        if idx != -1 and best > tol:\n            keep[idx] = True\n            stack.append((i, idx))\n            stack.append((idx + 1, j))\n    return [p for p, f in zip(pts, keep) if f]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('control #0', [[[0, 0], [3, 1], [6, -1], [9, 1], [12, 1], [15, 4], [18, 1], [21, -2], [24, 1]], 2], [[0, 0], [6, -1], [15, 4], [21, -2], [24, 1]]), ('control #1', [[[0, 3], [3, -4], [6, 1], [9, 3], [12, -4], [15, 1], [18, -1]], 1], [[0, 3], [3, -4], [9, 3], [12, -4], [15, 1], [18, -1]]), ('control #2', [[[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]], 0], [[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]]), ('control #3', [[[0, -3], [3, -1], [6, -3], [9, -2]], 3], [[0, -3], [9, -2]]), ('control #4', [[[0, -2], [3, -4], [6, -1], [9, -4], [12, 1], [15, 2]], 3], [[0, -2], [9, -4], [15, 2]]), ('control #5', [[[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], 0], [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]]), ('control #6', [[[0, 4], [3, -1], [6, 2], [9, 2], [12, 2]], 3], [[0, 4], [3, -1], [12, 2]]), ('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]])], [('control #2', [[[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]], 0], [[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]]), ('control #4', [[[0, -2], [3, -4], [6, -1], [9, -4], [12, 1], [15, 2]], 3], [[0, -2], [9, -4], [15, 2]]), ('control #5', [[[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], 0], [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]]), ('control #6', [[[0, 4], [3, -1], [6, 2], [9, 2], [12, 2]], 3], [[0, 4], [3, -1], [12, 2]]), ('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]]), ('control #8', [[[0, -4], [3, -4], [6, 1], [9, 3], [12, 3], [15, -4]], 1], [[0, -4], [3, -4], [9, 3], [12, 3], [15, -4]]), ('control #9', [[[0, -3], [3, 4], [6, 0], [9, -4], [12, 0], [15, -1], [18, 4]], 0], [[0, -3], [3, 4], [9, -4], [12, 0], [15, -1], [18, 4]]), ('control #10', [[[0, -4], [3, -2], [6, 1], [9, 1]], 2], [[0, -4], [9, 1]])], [('control #5', [[[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], 0], [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]]), ('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]]), ('control #8', [[[0, -4], [3, -4], [6, 1], [9, 3], [12, 3], [15, -4]], 1], [[0, -4], [3, -4], [9, 3], [12, 3], [15, -4]]), ('control #9', [[[0, -3], [3, 4], [6, 0], [9, -4], [12, 0], [15, -1], [18, 4]], 0], [[0, -3], [3, 4], [9, -4], [12, 0], [15, -1], [18, 4]]), ('control #10', [[[0, -4], [3, -2], [6, 1], [9, 1]], 2], [[0, -4], [9, 1]]), ('control #11', [[[0, 4], [3, -3], [6, -2], [9, -4], [12, 4], [15, 4], [18, -1]], 2], [[0, 4], [3, -3], [9, -4], [12, 4], [18, -1]]), ('boundary #18', [[[0, 0], [5, 2], [10, 0]], 2], [[0, 0], [10, 0]]), ('boundary #19', [[[0, 0], [5, 3], [10, 0]], 2], [[0, 0], [5, 3], [10, 0]])], [('control #7', [[[0, -4], [3, 0], [6, -3], [9, 1], [12, 1], [15, 3]], 2], [[0, -4], [3, 0], [6, -3], [15, 3]]), ('control #9', [[[0, -3], [3, 4], [6, 0], [9, -4], [12, 0], [15, -1], [18, 4]], 0], [[0, -3], [3, 4], [9, -4], [12, 0], [15, -1], [18, 4]]), ('control #11', [[[0, 4], [3, -3], [6, -2], [9, -4], [12, 4], [15, 4], [18, -1]], 2], [[0, 4], [3, -3], [9, -4], [12, 4], [18, -1]]), ('control #12', [[[0, 2], [3, -3], [6, 3], [9, -1]], 1], [[0, 2], [3, -3], [6, 3], [9, -1]]), ('control #13', [[[0, 4], [3, -1], [6, -4], [9, -2], [12, 4], [15, -3], [18, -1], [21, 0]], 3], [[0, 4], [6, -4], [12, 4], [15, -3], [21, 0]]), ('boundary #18', [[[0, 0], [5, 2], [10, 0]], 2], [[0, 0], [10, 0]]), ('boundary #19', [[[0, 0], [5, 3], [10, 0]], 2], [[0, 0], [5, 3], [10, 0]]), ('boundary #20', [[[0, 0], [10, 0]], 1], [[0, 0], [10, 0]])], [('control #8', [[[0, -4], [3, -4], [6, 1], [9, 3], [12, 3], [15, -4]], 1], [[0, -4], [3, -4], [9, 3], [12, 3], [15, -4]]), ('control #11', [[[0, 4], [3, -3], [6, -2], [9, -4], [12, 4], [15, 4], [18, -1]], 2], [[0, 4], [3, -3], [9, -4], [12, 4], [18, -1]]), ('regression #14', [[[0, 0], [10, 0], [14, 3], [20, 0]], 2], [[0, 0], [10, 0], [14, 3], [20, 0]]), ('regression #15', [[[0, 0], [5, 0], [-6, 1], [10, 0]], 2], [[0, 0], [5, 0], [-6, 1], [10, 0]]), ('regression #16', [[[0, 0], [4, 4], [8, 0], [4, -4], [0, 0]], 1], [[0, 0], [4, 4], [8, 0], [4, -4], [0, 0]]), ('boundary #18', [[[0, 0], [5, 2], [10, 0]], 2], [[0, 0], [10, 0]]), ('boundary #19', [[[0, 0], [5, 3], [10, 0]], 2], [[0, 0], [5, 3], [10, 0]]), ('boundary #20', [[[0, 0], [10, 0]], 1], [[0, 0], [10, 0]])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, 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":"Stipulated deterministic toy contract on a bounded input domain; results are rounded as stated and no conformance with any published standard or library is claimed. 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-gis-polygon-topology-douglas-peucker-arc-sub-arc-split-bounds","generated_at":"2026-09-29T14:48:22.275558+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Shared arcs are simplified once so adjacent polygons stay gap-free; distance and split errors change which boundary vertices survive.","root_cause":"The right-hand sub-arc starts at idx+1 instead of the kept vertex idx.","sha256":"3bcfd46b09fc80d074179ed880804debb140b765eac41b04d09e7ff0f1e4c30c","title":"Douglas-Peucker simplification of a topology arc: sub-arc split bounds · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":40.143,"exit_code":1,"observations":[{"actual":[[0,0],[15,4],[21,-2],[24,1]],"check":"control #0","expected":[[0,0],[6,-1],[15,4],[21,-2],[24,1]],"passed":false},{"actual":[[0,3],[3,-4],[9,3],[12,-4],[15,1],[18,-1]],"check":"control #1","expected":[[0,3],[3,-4],[9,3],[12,-4],[15,1],[18,-1]],"passed":true},{"actual":[[0,-4],[3,3],[6,-2],[12,2],[15,1],[18,1]],"check":"control #2","expected":[[0,-4],[3,3],[6,-2],[9,-1],[12,2],[15,1],[18,1]],"passed":false},{"actual":[[0,-3],[9,-2]],"check":"control #3","expected":[[0,-3],[9,-2]],"passed":true},{"actual":[[0,-2],[9,-4],[15,2]],"check":"control #4","expected":[[0,-2],[9,-4],[15,2]],"passed":true},{"actual":[[0,-2],[3,2],[9,-3],[15,4],[18,2],[21,-2]],"check":"control #5","expected":[[0,-2],[3,2],[6,2],[9,-3],[12,3],[15,4],[18,2],[21,-2]],"passed":false},{"actual":[[0,4],[3,-1],[12,2]],"check":"control #6","expected":[[0,4],[3,-1],[12,2]],"passed":true},{"actual":[[0,-4],[3,0],[6,-3],[15,3]],"check":"control #7","expected":[[0,-4],[3,0],[6,-3],[15,3]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control #0\", \"actual\": [[0, 0], [15, 4], [21, -2], [24, 1]], \"expected\": [[0, 0], [6, -1], [15, 4], [21, -2], [24, 1]], \"passed\": false}, {\"check\": \"control #1\", \"actual\": [[0, 3], [3, -4], [9, 3], [12, -4], [15, 1], [18, -1]], \"expected\": [[0, 3], [3, -4], [9, 3], [12, -4], [15, 1], [18, -1]], \"passed\": true}, {\"check\": \"control #2\", \"actual\": [[0, -4], [3, 3], [6, -2], [12, 2], [15, 1], [18, 1]], \"expected\": [[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]], \"passed\": false}, {\"check\": \"control #3\", \"actual\": [[0, -3], [9, -2]], \"expected\": [[0, -3], [9, -2]], \"passed\": true}, {\"check\": \"control #4\", \"actual\": [[0, -2], [9, -4], [15, 2]], \"expected\": [[0, -2], [9, -4], [15, 2]], \"passed\": true}, {\"check\": \"control #5\", \"actual\": [[0, -2], [3, 2], [9, -3], [15, 4], [18, 2], [21, -2]], \"expected\": [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], \"passed\": false}, {\"check\": \"control #6\", \"actual\": [[0, 4], [3, -1], [12, 2]], \"expected\": [[0, 4], [3, -1], [12, 2]], \"passed\": true}, {\"check\": \"control #7\", \"actual\": [[0, -4], [3, 0], [6, -3], [15, 3]], \"expected\": [[0, -4], [3, 0], [6, -3], [15, 3]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.803,"exit_code":1,"observations":[{"actual":[[0,0],[6,-1],[15,4],[21,-2],[24,1]],"check":"control #0","expected":[[0,0],[6,-1],[15,4],[21,-2],[24,1]],"passed":true},{"actual":[[0,3],[3,-4],[9,3],[12,-4],[18,-1]],"check":"control #1","expected":[[0,3],[3,-4],[9,3],[12,-4],[15,1],[18,-1]],"passed":false},{"actual":[[0,-4],[3,3],[9,-1],[12,2],[18,1]],"check":"control #2","expected":[[0,-4],[3,3],[6,-2],[9,-1],[12,2],[15,1],[18,1]],"passed":false},{"actual":[[0,-3],[9,-2]],"check":"control #3","expected":[[0,-3],[9,-2]],"passed":true},{"actual":[[0,-2],[9,-4],[15,2]],"check":"control #4","expected":[[0,-2],[9,-4],[15,2]],"passed":true},{"actual":[[0,-2],[3,2],[6,2],[9,-3],[15,4],[21,-2]],"check":"control #5","expected":[[0,-2],[3,2],[6,2],[9,-3],[12,3],[15,4],[18,2],[21,-2]],"passed":false},{"actual":[[0,4],[3,-1],[12,2]],"check":"control #6","expected":[[0,4],[3,-1],[12,2]],"passed":true},{"actual":[[0,-4],[3,0],[15,3]],"check":"control #7","expected":[[0,-4],[3,0],[6,-3],[15,3]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"control #0\", \"actual\": [[0, 0], [6, -1], [15, 4], [21, -2], [24, 1]], \"expected\": [[0, 0], [6, -1], [15, 4], [21, -2], [24, 1]], \"passed\": true}, {\"check\": \"control #1\", \"actual\": [[0, 3], [3, -4], [9, 3], [12, -4], [18, -1]], \"expected\": [[0, 3], [3, -4], [9, 3], [12, -4], [15, 1], [18, -1]], \"passed\": false}, {\"check\": \"control #2\", \"actual\": [[0, -4], [3, 3], [9, -1], [12, 2], [18, 1]], \"expected\": [[0, -4], [3, 3], [6, -2], [9, -1], [12, 2], [15, 1], [18, 1]], \"passed\": false}, {\"check\": \"control #3\", \"actual\": [[0, -3], [9, -2]], \"expected\": [[0, -3], [9, -2]], \"passed\": true}, {\"check\": \"control #4\", \"actual\": [[0, -2], [9, -4], [15, 2]], \"expected\": [[0, -2], [9, -4], [15, 2]], \"passed\": true}, {\"check\": \"control #5\", \"actual\": [[0, -2], [3, 2], [6, 2], [9, -3], [15, 4], [21, -2]], \"expected\": [[0, -2], [3, 2], [6, 2], [9, -3], [12, 3], [15, 4], [18, 2], [21, -2]], \"passed\": false}, {\"check\": \"control #6\", \"actual\": [[0, 4], [3, -1], [12, 2]], \"expected\": [[0, 4], [3, -1], [12, 2]], \"passed\": true}, {\"check\": \"control #7\", \"actual\": [[0, -4], [3, 0], [15, 3]], \"expected\": [[0, -4], [3, 0], [6, -3], [15, 3]], \"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."}}