{"abstract":"Pre-stepping a descending line truncates toward zero while the error keeps a floored remainder, desynchronising row and error.","category":"Raster clipping","checks":13,"contract":"Each command is [x0,y0,x1,y1,scissor] for an x-major integer line with x0<=x1 and |y1-y0|<=x1-x0 (a zero-length line is a single point). The reference pixel in column x is y0+floor((2*(y1-y0)*(x-x0)+dx)/(2*dx)), ties rounding up. Clipping to the half-open scissor [left,top,right,bottom) intersected with [0,size) must emit exactly the reference pixels inside it, in x order. The walk starts at the first visible column with an exact pre-stepped error term and may stop once y has left the scissor in the direction of travel.","evaluation_group":"s3-raster-clipping-clipped-bresenham-prestep","failed_approach":"Rounding the quotient instead of flooring still disagrees with the floored remainder.","family":"s3-raster-clipping-clipped-bresenham-prestep-negative-prestep-truncation","id":"FA-51736","implementations":{"attempt":{"sha256":"0410bf1451f1c64c5e89e1094b5f41625f8cdbd263ec76b431a8928812e7e56d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    out=[]\n    for x0,y0,x1,y1,clip in commands:\n        l,t,r,b=max(clip[0],0),max(clip[1],0),min(clip[2],size),min(clip[3],size)\n        dx,dy=x1-x0,y1-y0\n        pixels=[]\n        if dx==0:\n            if l<=x0<r and t<=y0<b: pixels=[[x0,y0]]\n        else:\n            xs=max(x0,l)\n            xe=min(x1,r-1)\n            if xs<=xe:\n                num=2*dy*(xs-x0)+dx\n                y=y0+round(num/(2*dx))\n                err=num%(2*dx)\n                for x in range(xs,xe+1):\n                    if y>=b and dy>=0 or y<t and dy<=0: break\n                    if t<=y<b: pixels.append([x,y])\n                    err+=2*dy\n                    while err>=2*dx:\n                        err-=2*dx\n                        y+=1\n                    while err<0:\n                        err+=2*dx\n                        y-=1\n        out.append(pixels)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('explicit case 0', solve([[0, 0, 5, 2, [0, 0, 6, 6]]], 6), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]])\n    check('explicit case 1', solve([[-3, 0, 5, 3, [0, 0, 6, 6]]], 6), [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 6, 6]]], 6), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 6, 6]]], 6), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 9, 1, [0, 0, 6, 6]]], 6), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 6]]], 6), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 6, 6]]], 6), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 6, 6]]], 6), [[[2, 1], [3, 2], [4, 2], [5, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 6]]], 6), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 6, 6]]], 6), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 6, 6]]], 6), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 6, 3]]], 6), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 6, 2]]], 6), [[[2, 1], [3, 1], [4, 1]]])\nif N == 2:\n    check('explicit case 0', solve([[0, 0, 6, 2, [0, 0, 7, 7]]], 7), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 2], [6, 2]]])\n    check('explicit case 1', solve([[-3, 0, 6, 3, [0, 0, 7, 7]]], 7), [[[0, 1], [1, 1], [2, 2], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 7, 7]]], 7), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 7, 7]]], 7), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 10, 1, [0, 0, 7, 7]]], 7), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 7]]], 7), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 7, 7]]], 7), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 7, 7]]], 7), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 7]]], 7), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 7, 7]]], 7), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 7, 7]]], 7), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 7, 3]]], 7), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 7, 2]]], 7), [[[2, 1], [3, 1], [4, 1]]])\nif N == 3:\n    check('explicit case 0', solve([[0, 0, 7, 2, [0, 0, 8, 8]]], 8), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 1], [6, 2], [7, 2]]])\n    check('explicit case 1', solve([[-3, 0, 7, 3, [0, 0, 8, 8]]], 8), [[[0, 1], [1, 1], [2, 2], [3, 2], [4, 2], [5, 2], [6, 3], [7, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 8, 8]]], 8), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 8, 8]]], 8), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 11, 1, [0, 0, 8, 8]]], 8), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 8]]], 8), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 8, 8]]], 8), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 8, 8]]], 8), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 8]]], 8), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 8, 8]]], 8), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 8, 8]]], 8), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 8, 3]]], 8), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 8, 2]]], 8), [[[2, 1], [3, 1], [4, 1]]])\nif N == 4:\n    check('explicit case 0', solve([[0, 0, 8, 2, [0, 0, 9, 9]]], 9), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 1], [6, 2], [7, 2], [8, 2]]])\n    check('explicit case 1', solve([[-3, 0, 8, 3, [0, 0, 9, 9]]], 9), [[[0, 1], [1, 1], [2, 1], [3, 2], [4, 2], [5, 2], [6, 2], [7, 3], [8, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 9, 9]]], 9), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 9, 9]]], 9), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 12, 1, [0, 0, 9, 9]]], 9), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 9]]], 9), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 9, 9]]], 9), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 9, 9]]], 9), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 9]]], 9), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 9, 9]]], 9), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 9, 9]]], 9), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 9, 3]]], 9), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 9, 2]]], 9), [[[2, 1], [3, 1], [4, 1]]])\nif N == 5:\n    check('explicit case 0', solve([[0, 0, 9, 2, [0, 0, 10, 10]]], 10), [[[0, 0], [1, 0], [2, 0], [3, 1], [4, 1], [5, 1], [6, 1], [7, 2], [8, 2], [9, 2]]])\n    check('explicit case 1', solve([[-3, 0, 9, 3, [0, 0, 10, 10]]], 10), [[[0, 1], [1, 1], [2, 1], [3, 2], [4, 2], [5, 2], [6, 2], [7, 3], [8, 3], [9, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 10, 10]]], 10), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 10, 10]]], 10), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 13, 1, [0, 0, 10, 10]]], 10), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1], [9, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 10]]], 10), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 10, 10]]], 10), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 10, 10]]], 10), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 10]]], 10), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 10, 10]]], 10), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 10, 10]]], 10), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 10, 3]]], 10), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 10, 2]]], 10), [[[2, 1], [3, 1], [4, 1]]])\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":"cfc7fff3ee4f2a5f4a38a1d0cbd22d13caa611fdb511aad865e9012151c6a131","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    out=[]\n    for x0,y0,x1,y1,clip in commands:\n        l,t,r,b=max(clip[0],0),max(clip[1],0),min(clip[2],size),min(clip[3],size)\n        dx,dy=x1-x0,y1-y0\n        pixels=[]\n        if dx==0:\n            if l<=x0<r and t<=y0<b: pixels=[[x0,y0]]\n        else:\n            xs=max(x0,l)\n            xe=min(x1,r-1)\n            if xs<=xe:\n                num=2*dy*(xs-x0)+dx\n                y=y0+int(num/(2*dx))\n                err=num%(2*dx)\n                for x in range(xs,xe+1):\n                    if y>=b and dy>=0 or y<t and dy<=0: break\n                    if t<=y<b: pixels.append([x,y])\n                    err+=2*dy\n                    while err>=2*dx:\n                        err-=2*dx\n                        y+=1\n                    while err<0:\n                        err+=2*dx\n                        y-=1\n        out.append(pixels)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('explicit case 0', solve([[0, 0, 5, 2, [0, 0, 6, 6]]], 6), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]])\n    check('explicit case 1', solve([[-3, 0, 5, 3, [0, 0, 6, 6]]], 6), [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 6, 6]]], 6), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 6, 6]]], 6), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 9, 1, [0, 0, 6, 6]]], 6), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 6]]], 6), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 6, 6]]], 6), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 6, 6]]], 6), [[[2, 1], [3, 2], [4, 2], [5, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 6]]], 6), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 6, 6]]], 6), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 6, 6]]], 6), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 6, 3]]], 6), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 6, 2]]], 6), [[[2, 1], [3, 1], [4, 1]]])\nif N == 2:\n    check('explicit case 0', solve([[0, 0, 6, 2, [0, 0, 7, 7]]], 7), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 2], [6, 2]]])\n    check('explicit case 1', solve([[-3, 0, 6, 3, [0, 0, 7, 7]]], 7), [[[0, 1], [1, 1], [2, 2], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 7, 7]]], 7), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 7, 7]]], 7), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 10, 1, [0, 0, 7, 7]]], 7), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 7]]], 7), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 7, 7]]], 7), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 7, 7]]], 7), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 7]]], 7), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 7, 7]]], 7), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 7, 7]]], 7), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 7, 3]]], 7), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 7, 2]]], 7), [[[2, 1], [3, 1], [4, 1]]])\nif N == 3:\n    check('explicit case 0', solve([[0, 0, 7, 2, [0, 0, 8, 8]]], 8), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 1], [6, 2], [7, 2]]])\n    check('explicit case 1', solve([[-3, 0, 7, 3, [0, 0, 8, 8]]], 8), [[[0, 1], [1, 1], [2, 2], [3, 2], [4, 2], [5, 2], [6, 3], [7, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 8, 8]]], 8), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 8, 8]]], 8), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 11, 1, [0, 0, 8, 8]]], 8), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 8]]], 8), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 8, 8]]], 8), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 8, 8]]], 8), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 8]]], 8), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 8, 8]]], 8), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 8, 8]]], 8), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 8, 3]]], 8), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 8, 2]]], 8), [[[2, 1], [3, 1], [4, 1]]])\nif N == 4:\n    check('explicit case 0', solve([[0, 0, 8, 2, [0, 0, 9, 9]]], 9), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 1], [6, 2], [7, 2], [8, 2]]])\n    check('explicit case 1', solve([[-3, 0, 8, 3, [0, 0, 9, 9]]], 9), [[[0, 1], [1, 1], [2, 1], [3, 2], [4, 2], [5, 2], [6, 2], [7, 3], [8, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 9, 9]]], 9), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 9, 9]]], 9), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 12, 1, [0, 0, 9, 9]]], 9), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 9]]], 9), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 9, 9]]], 9), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 9, 9]]], 9), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 9]]], 9), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 9, 9]]], 9), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 9, 9]]], 9), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 9, 3]]], 9), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 9, 2]]], 9), [[[2, 1], [3, 1], [4, 1]]])\nif N == 5:\n    check('explicit case 0', solve([[0, 0, 9, 2, [0, 0, 10, 10]]], 10), [[[0, 0], [1, 0], [2, 0], [3, 1], [4, 1], [5, 1], [6, 1], [7, 2], [8, 2], [9, 2]]])\n    check('explicit case 1', solve([[-3, 0, 9, 3, [0, 0, 10, 10]]], 10), [[[0, 1], [1, 1], [2, 1], [3, 2], [4, 2], [5, 2], [6, 2], [7, 3], [8, 3], [9, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 10, 10]]], 10), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 10, 10]]], 10), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 13, 1, [0, 0, 10, 10]]], 10), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1], [9, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 10]]], 10), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 10, 10]]], 10), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 10, 10]]], 10), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 10]]], 10), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 10, 10]]], 10), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 10, 10]]], 10), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 10, 3]]], 10), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 10, 2]]], 10), [[[2, 1], [3, 1], [4, 1]]])\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":"c0e00b21d8d3ce9e4d3bf378201da461d5c24a32747c473f5da1e92afa824295","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    out=[]\n    for x0,y0,x1,y1,clip in commands:\n        l,t,r,b=max(clip[0],0),max(clip[1],0),min(clip[2],size),min(clip[3],size)\n        dx,dy=x1-x0,y1-y0\n        pixels=[]\n        if dx==0:\n            if l<=x0<r and t<=y0<b: pixels=[[x0,y0]]\n        else:\n            xs=max(x0,l)\n            xe=min(x1,r-1)\n            if xs<=xe:\n                num=2*dy*(xs-x0)+dx\n                y=y0+num//(2*dx)\n                err=num%(2*dx)\n                for x in range(xs,xe+1):\n                    if y>=b and dy>=0 or y<t and dy<=0: break\n                    if t<=y<b: pixels.append([x,y])\n                    err+=2*dy\n                    while err>=2*dx:\n                        err-=2*dx\n                        y+=1\n                    while err<0:\n                        err+=2*dx\n                        y-=1\n        out.append(pixels)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nif N == 1:\n    check('explicit case 0', solve([[0, 0, 5, 2, [0, 0, 6, 6]]], 6), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]])\n    check('explicit case 1', solve([[-3, 0, 5, 3, [0, 0, 6, 6]]], 6), [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 6, 6]]], 6), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 6, 6]]], 6), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 9, 1, [0, 0, 6, 6]]], 6), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 6]]], 6), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 6, 6]]], 6), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 6, 6]]], 6), [[[2, 1], [3, 2], [4, 2], [5, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 6]]], 6), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 6, 6]]], 6), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 6, 6]]], 6), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 6, 3]]], 6), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 6, 2]]], 6), [[[2, 1], [3, 1], [4, 1]]])\nif N == 2:\n    check('explicit case 0', solve([[0, 0, 6, 2, [0, 0, 7, 7]]], 7), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 2], [6, 2]]])\n    check('explicit case 1', solve([[-3, 0, 6, 3, [0, 0, 7, 7]]], 7), [[[0, 1], [1, 1], [2, 2], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 7, 7]]], 7), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 7, 7]]], 7), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 10, 1, [0, 0, 7, 7]]], 7), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 7]]], 7), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 7, 7]]], 7), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 7, 7]]], 7), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 7]]], 7), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 7, 7]]], 7), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 7, 7]]], 7), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 7, 3]]], 7), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 7, 2]]], 7), [[[2, 1], [3, 1], [4, 1]]])\nif N == 3:\n    check('explicit case 0', solve([[0, 0, 7, 2, [0, 0, 8, 8]]], 8), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 1], [6, 2], [7, 2]]])\n    check('explicit case 1', solve([[-3, 0, 7, 3, [0, 0, 8, 8]]], 8), [[[0, 1], [1, 1], [2, 2], [3, 2], [4, 2], [5, 2], [6, 3], [7, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 8, 8]]], 8), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 8, 8]]], 8), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 11, 1, [0, 0, 8, 8]]], 8), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 8]]], 8), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 8, 8]]], 8), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 8, 8]]], 8), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 8]]], 8), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 8, 8]]], 8), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 8, 8]]], 8), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 8, 3]]], 8), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 8, 2]]], 8), [[[2, 1], [3, 1], [4, 1]]])\nif N == 4:\n    check('explicit case 0', solve([[0, 0, 8, 2, [0, 0, 9, 9]]], 9), [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 1], [5, 1], [6, 2], [7, 2], [8, 2]]])\n    check('explicit case 1', solve([[-3, 0, 8, 3, [0, 0, 9, 9]]], 9), [[[0, 1], [1, 1], [2, 1], [3, 2], [4, 2], [5, 2], [6, 2], [7, 3], [8, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 9, 9]]], 9), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 9, 9]]], 9), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 12, 1, [0, 0, 9, 9]]], 9), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 9]]], 9), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 9, 9]]], 9), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 9, 9]]], 9), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 9]]], 9), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 9, 9]]], 9), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 9, 9]]], 9), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 9, 3]]], 9), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 9, 2]]], 9), [[[2, 1], [3, 1], [4, 1]]])\nif N == 5:\n    check('explicit case 0', solve([[0, 0, 9, 2, [0, 0, 10, 10]]], 10), [[[0, 0], [1, 0], [2, 0], [3, 1], [4, 1], [5, 1], [6, 1], [7, 2], [8, 2], [9, 2]]])\n    check('explicit case 1', solve([[-3, 0, 9, 3, [0, 0, 10, 10]]], 10), [[[0, 1], [1, 1], [2, 1], [3, 2], [4, 2], [5, 2], [6, 2], [7, 3], [8, 3], [9, 3]]])\n    check('explicit case 2', solve([[0, 1, 4, 3, [2, 0, 10, 10]]], 10), [[[2, 2], [3, 3], [4, 3]]])\n    check('explicit case 3', solve([[0, 4, 5, 1, [2, 0, 10, 10]]], 10), [[[2, 3], [3, 2], [4, 2], [5, 1]]])\n    check('explicit case 4', solve([[1, 1, 13, 1, [0, 0, 10, 10]]], 10), [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1], [9, 1]]])\n    check('explicit case 5', solve([[0, 0, 3, 3, [0, 0, 2, 10]]], 10), [[[0, 0], [1, 1]]])\n    check('explicit case 6', solve([[2, 2, 5, 3, [0, 0, 10, 10]]], 10), [[[2, 2], [3, 2], [4, 3], [5, 3]]])\n    check('explicit case 7', solve([[2, 1, 6, 3, [1, 0, 10, 10]]], 10), [[[2, 1], [3, 2], [4, 2], [5, 3], [6, 3]]])\n    check('explicit case 8', solve([[3, 3, 3, 3, [0, 0, 2, 10]]], 10), [[]])\n    check('explicit case 9', solve([[3, 3, 3, 3, [0, 0, 10, 10]]], 10), [[[3, 3]]])\n    check('explicit case 10', solve([[0, 0, 4, 4, [0, 2, 10, 10]]], 10), [[[2, 2], [3, 3], [4, 4]]])\n    check('explicit case 11', solve([[0, 5, 5, 0, [0, 0, 10, 3]]], 10), [[[3, 2], [4, 1], [5, 0]]])\n    check('explicit case 12', solve([[0, 0, 6, 2, [0, 1, 10, 2]]], 10), [[[2, 1], [3, 1], [4, 1]]])\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":"Exact integer/rational arithmetic on small stipulated fixtures models the clipping decision only; no memory layout, GPU pipeline, graphics API or standards conformance 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":"s3-raster-clipping-clipped-bresenham-prestep-negative-prestep-truncation","generated_at":"2026-09-29T14:45:21.797297+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Raster clipping decides which pixels a primitive may touch; a single wrong clip decision writes outside the target or scissor, or silently drops visible coverage.","repair":"Restore the specified clipping decision at negative prestep truncation. Each command is [x0,y0,x1,y1,scissor] for an x-major integer line with x0<=x1 and |y1-y0|<=x1-x0 (a zero-length line is a single point). The reference pixel in column x is y0+floor((2*(y1-y0)*(x-x0)+dx)/(2*dx)), ties rounding up. Clipping to the half-open scissor [left,top,right,bottom) intersected with [0,size) must emit exactly the reference pixels inside it, in x order. The walk starts at the first visible column with an exact pre-stepped error term and may stop once y has left the scissor in the direction of travel.","root_cause":"Pre-stepping a descending line truncates toward zero while the error keeps a floored remainder, desynchronising row and error.","sha256":"e0c02202d10174dd5303f553d092eaf57d635beed6cbf681163929cde63e7d82","title":"Clipped bresenham prestep: negative prestep truncation · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":45.752,"exit_code":1,"observations":[{"actual":[[[0,0],[1,0],[2,1],[3,1],[4,2],[5,2]]],"check":"explicit case 0","expected":[[[0,0],[1,0],[2,1],[3,1],[4,2],[5,2]]],"passed":true},{"actual":[[[0,2],[1,3],[2,3],[3,3],[4,4],[5,4]]],"check":"explicit case 1","expected":[[[0,1],[1,2],[2,2],[3,2],[4,3],[5,3]]],"passed":false},{"actual":[[[2,3],[3,4],[4,4]]],"check":"explicit case 2","expected":[[[2,2],[3,3],[4,3]]],"passed":false},{"actual":[[[2,3],[3,2],[4,2],[5,1]]],"check":"explicit case 3","expected":[[[2,3],[3,2],[4,2],[5,1]]],"passed":true},{"actual":[[[1,1],[2,1],[3,1],[4,1],[5,1]]],"check":"explicit case 4","expected":[[[1,1],[2,1],[3,1],[4,1],[5,1]]],"passed":true},{"actual":[[[0,0],[1,1]]],"check":"explicit case 5","expected":[[[0,0],[1,1]]],"passed":true},{"actual":[[[2,2],[3,2],[4,3],[5,3]]],"check":"explicit case 6","expected":[[[2,2],[3,2],[4,3],[5,3]]],"passed":true},{"actual":[[[2,1],[3,2],[4,2],[5,3]]],"check":"explicit case 7","expected":[[[2,1],[3,2],[4,2],[5,3]]],"passed":true},{"actual":[[]],"check":"explicit case 8","expected":[[]],"passed":true},{"actual":[[[3,3]]],"check":"explicit case 9","expected":[[[3,3]]],"passed":true},{"actual":[[[2,2],[3,3],[4,4]]],"check":"explicit case 10","expected":[[[2,2],[3,3],[4,4]]],"passed":true},{"actual":[[[3,2],[4,1],[5,0]]],"check":"explicit case 11","expected":[[[3,2],[4,1],[5,0]]],"passed":true},{"actual":[[[2,1],[3,1],[4,1]]],"check":"explicit case 12","expected":[[[2,1],[3,1],[4,1]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit case 0\", \"actual\": [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]], \"expected\": [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]], \"passed\": true}, {\"check\": \"explicit case 1\", \"actual\": [[[0, 2], [1, 3], [2, 3], [3, 3], [4, 4], [5, 4]]], \"expected\": [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]], \"passed\": false}, {\"check\": \"explicit case 2\", \"actual\": [[[2, 3], [3, 4], [4, 4]]], \"expected\": [[[2, 2], [3, 3], [4, 3]]], \"passed\": false}, {\"check\": \"explicit case 3\", \"actual\": [[[2, 3], [3, 2], [4, 2], [5, 1]]], \"expected\": [[[2, 3], [3, 2], [4, 2], [5, 1]]], \"passed\": true}, {\"check\": \"explicit case 4\", \"actual\": [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]], \"expected\": [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]], \"passed\": true}, {\"check\": \"explicit case 5\", \"actual\": [[[0, 0], [1, 1]]], \"expected\": [[[0, 0], [1, 1]]], \"passed\": true}, {\"check\": \"explicit case 6\", \"actual\": [[[2, 2], [3, 2], [4, 3], [5, 3]]], \"expected\": [[[2, 2], [3, 2], [4, 3], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 7\", \"actual\": [[[2, 1], [3, 2], [4, 2], [5, 3]]], \"expected\": [[[2, 1], [3, 2], [4, 2], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 8\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"explicit case 9\", \"actual\": [[[3, 3]]], \"expected\": [[[3, 3]]], \"passed\": true}, {\"check\": \"explicit case 10\", \"actual\": [[[2, 2], [3, 3], [4, 4]]], \"expected\": [[[2, 2], [3, 3], [4, 4]]], \"passed\": true}, {\"check\": \"explicit case 11\", \"actual\": [[[3, 2], [4, 1], [5, 0]]], \"expected\": [[[3, 2], [4, 1], [5, 0]]], \"passed\": true}, {\"check\": \"explicit case 12\", \"actual\": [[[2, 1], [3, 1], [4, 1]]], \"expected\": [[[2, 1], [3, 1], [4, 1]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.32,"exit_code":1,"observations":[{"actual":[[[0,0],[1,0],[2,1],[3,1],[4,2],[5,2]]],"check":"explicit case 0","expected":[[[0,0],[1,0],[2,1],[3,1],[4,2],[5,2]]],"passed":true},{"actual":[[[0,1],[1,2],[2,2],[3,2],[4,3],[5,3]]],"check":"explicit case 1","expected":[[[0,1],[1,2],[2,2],[3,2],[4,3],[5,3]]],"passed":true},{"actual":[[[2,2],[3,3],[4,3]]],"check":"explicit case 2","expected":[[[2,2],[3,3],[4,3]]],"passed":true},{"actual":[[[2,4],[3,3],[4,3],[5,2]]],"check":"explicit case 3","expected":[[[2,3],[3,2],[4,2],[5,1]]],"passed":false},{"actual":[[[1,1],[2,1],[3,1],[4,1],[5,1]]],"check":"explicit case 4","expected":[[[1,1],[2,1],[3,1],[4,1],[5,1]]],"passed":true},{"actual":[[[0,0],[1,1]]],"check":"explicit case 5","expected":[[[0,0],[1,1]]],"passed":true},{"actual":[[[2,2],[3,2],[4,3],[5,3]]],"check":"explicit case 6","expected":[[[2,2],[3,2],[4,3],[5,3]]],"passed":true},{"actual":[[[2,1],[3,2],[4,2],[5,3]]],"check":"explicit case 7","expected":[[[2,1],[3,2],[4,2],[5,3]]],"passed":true},{"actual":[[]],"check":"explicit case 8","expected":[[]],"passed":true},{"actual":[[[3,3]]],"check":"explicit case 9","expected":[[[3,3]]],"passed":true},{"actual":[[[2,2],[3,3],[4,4]]],"check":"explicit case 10","expected":[[[2,2],[3,3],[4,4]]],"passed":true},{"actual":[[[3,2],[4,1],[5,0]]],"check":"explicit case 11","expected":[[[3,2],[4,1],[5,0]]],"passed":true},{"actual":[[[2,1],[3,1],[4,1]]],"check":"explicit case 12","expected":[[[2,1],[3,1],[4,1]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit case 0\", \"actual\": [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]], \"expected\": [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]], \"passed\": true}, {\"check\": \"explicit case 1\", \"actual\": [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]], \"expected\": [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 2\", \"actual\": [[[2, 2], [3, 3], [4, 3]]], \"expected\": [[[2, 2], [3, 3], [4, 3]]], \"passed\": true}, {\"check\": \"explicit case 3\", \"actual\": [[[2, 4], [3, 3], [4, 3], [5, 2]]], \"expected\": [[[2, 3], [3, 2], [4, 2], [5, 1]]], \"passed\": false}, {\"check\": \"explicit case 4\", \"actual\": [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]], \"expected\": [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]], \"passed\": true}, {\"check\": \"explicit case 5\", \"actual\": [[[0, 0], [1, 1]]], \"expected\": [[[0, 0], [1, 1]]], \"passed\": true}, {\"check\": \"explicit case 6\", \"actual\": [[[2, 2], [3, 2], [4, 3], [5, 3]]], \"expected\": [[[2, 2], [3, 2], [4, 3], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 7\", \"actual\": [[[2, 1], [3, 2], [4, 2], [5, 3]]], \"expected\": [[[2, 1], [3, 2], [4, 2], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 8\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"explicit case 9\", \"actual\": [[[3, 3]]], \"expected\": [[[3, 3]]], \"passed\": true}, {\"check\": \"explicit case 10\", \"actual\": [[[2, 2], [3, 3], [4, 4]]], \"expected\": [[[2, 2], [3, 3], [4, 4]]], \"passed\": true}, {\"check\": \"explicit case 11\", \"actual\": [[[3, 2], [4, 1], [5, 0]]], \"expected\": [[[3, 2], [4, 1], [5, 0]]], \"passed\": true}, {\"check\": \"explicit case 12\", \"actual\": [[[2, 1], [3, 1], [4, 1]]], \"expected\": [[[2, 1], [3, 1], [4, 1]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.157,"exit_code":0,"observations":[{"actual":[[[0,0],[1,0],[2,1],[3,1],[4,2],[5,2]]],"check":"explicit case 0","expected":[[[0,0],[1,0],[2,1],[3,1],[4,2],[5,2]]],"passed":true},{"actual":[[[0,1],[1,2],[2,2],[3,2],[4,3],[5,3]]],"check":"explicit case 1","expected":[[[0,1],[1,2],[2,2],[3,2],[4,3],[5,3]]],"passed":true},{"actual":[[[2,2],[3,3],[4,3]]],"check":"explicit case 2","expected":[[[2,2],[3,3],[4,3]]],"passed":true},{"actual":[[[2,3],[3,2],[4,2],[5,1]]],"check":"explicit case 3","expected":[[[2,3],[3,2],[4,2],[5,1]]],"passed":true},{"actual":[[[1,1],[2,1],[3,1],[4,1],[5,1]]],"check":"explicit case 4","expected":[[[1,1],[2,1],[3,1],[4,1],[5,1]]],"passed":true},{"actual":[[[0,0],[1,1]]],"check":"explicit case 5","expected":[[[0,0],[1,1]]],"passed":true},{"actual":[[[2,2],[3,2],[4,3],[5,3]]],"check":"explicit case 6","expected":[[[2,2],[3,2],[4,3],[5,3]]],"passed":true},{"actual":[[[2,1],[3,2],[4,2],[5,3]]],"check":"explicit case 7","expected":[[[2,1],[3,2],[4,2],[5,3]]],"passed":true},{"actual":[[]],"check":"explicit case 8","expected":[[]],"passed":true},{"actual":[[[3,3]]],"check":"explicit case 9","expected":[[[3,3]]],"passed":true},{"actual":[[[2,2],[3,3],[4,4]]],"check":"explicit case 10","expected":[[[2,2],[3,3],[4,4]]],"passed":true},{"actual":[[[3,2],[4,1],[5,0]]],"check":"explicit case 11","expected":[[[3,2],[4,1],[5,0]]],"passed":true},{"actual":[[[2,1],[3,1],[4,1]]],"check":"explicit case 12","expected":[[[2,1],[3,1],[4,1]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit case 0\", \"actual\": [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]], \"expected\": [[[0, 0], [1, 0], [2, 1], [3, 1], [4, 2], [5, 2]]], \"passed\": true}, {\"check\": \"explicit case 1\", \"actual\": [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]], \"expected\": [[[0, 1], [1, 2], [2, 2], [3, 2], [4, 3], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 2\", \"actual\": [[[2, 2], [3, 3], [4, 3]]], \"expected\": [[[2, 2], [3, 3], [4, 3]]], \"passed\": true}, {\"check\": \"explicit case 3\", \"actual\": [[[2, 3], [3, 2], [4, 2], [5, 1]]], \"expected\": [[[2, 3], [3, 2], [4, 2], [5, 1]]], \"passed\": true}, {\"check\": \"explicit case 4\", \"actual\": [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]], \"expected\": [[[1, 1], [2, 1], [3, 1], [4, 1], [5, 1]]], \"passed\": true}, {\"check\": \"explicit case 5\", \"actual\": [[[0, 0], [1, 1]]], \"expected\": [[[0, 0], [1, 1]]], \"passed\": true}, {\"check\": \"explicit case 6\", \"actual\": [[[2, 2], [3, 2], [4, 3], [5, 3]]], \"expected\": [[[2, 2], [3, 2], [4, 3], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 7\", \"actual\": [[[2, 1], [3, 2], [4, 2], [5, 3]]], \"expected\": [[[2, 1], [3, 2], [4, 2], [5, 3]]], \"passed\": true}, {\"check\": \"explicit case 8\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"explicit case 9\", \"actual\": [[[3, 3]]], \"expected\": [[[3, 3]]], \"passed\": true}, {\"check\": \"explicit case 10\", \"actual\": [[[2, 2], [3, 3], [4, 4]]], \"expected\": [[[2, 2], [3, 3], [4, 4]]], \"passed\": true}, {\"check\": \"explicit case 11\", \"actual\": [[[3, 2], [4, 1], [5, 0]]], \"expected\": [[[3, 2], [4, 1], [5, 0]]], \"passed\": true}, {\"check\": \"explicit case 12\", \"actual\": [[[2, 1], [3, 1], [4, 1]]], \"expected\": [[[2, 1], [3, 1], [4, 1]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}