{"abstract":"A part that re-enters the window at a different point is appended to the previous piece, drawing a false connector along the boundary.","category":"Raster clipping","checks":11,"contract":"Each command is [points,closed]. Consecutive vertices (plus the closing edge when closed and at least three points) are clipped against the closed pixel-center window [0,size-1]x[0,size-1] with exact parametric clipping. Visible parts that start where the current piece ends extend it (skipping zero-length repeats); any other visible part starts a new piece; a fully rejected edge ends the current piece. For closed paths, a last piece ending where the first piece begins is merged in front of it without repeating the joint. Pieces with fewer than two vertices are dropped. Vertices are exact rational strings.","evaluation_group":"s3-raster-clipping-polyline-strip-window-clip","failed_approach":"Comparing only the y coordinate still merges exits and re-entries on the same horizontal boundary.","family":"s3-raster-clipping-polyline-strip-window-clip-reentry-merged","id":"FA-51791","implementations":{"attempt":{"sha256":"6a80295f80602ced8c944b5a89b29d734092c2820532dd2df02504c78ec0465e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(commands, size):\n    def seg(p,q):\n        t0,t1=Fraction(0),Fraction(1)\n        for d,e in ((q[0]-p[0],p[0]),(q[1]-p[1],p[1])):\n            for pp,qq in ((-d,e),(d,size-1-e)):\n                if pp==0:\n                    if qq<0: return None\n                else:\n                    u=qq/pp\n                    if pp<0: t0=max(t0,u)\n                    else: t1=min(t1,u)\n        if t0>t1: return None\n        a=(p[0]+t0*(q[0]-p[0]),p[1]+t0*(q[1]-p[1]))\n        b=(p[0]+t1*(q[0]-p[0]),p[1]+t1*(q[1]-p[1]))\n        return a,b\n    out=[]\n    for points,closed in commands:\n        pts=[(Fraction(x),Fraction(y)) for x,y in points]\n        edges=list(zip(pts,pts[1:]))\n        if closed and len(pts)>2: edges.append((pts[-1],pts[0]))\n        pieces=[]\n        current=None\n        for p,q in edges:\n            part=seg(p,q)\n            if part is None:\n                current=None\n                continue\n            a,b=part\n            if current is not None and current[-1][1]==a[1]:\n                if b!=a: current.append(b)\n            else:\n                current=[a] if a==b else [a,b]\n                pieces.append(current)\n        if closed and len(pieces)>1 and pieces[0][0]==pieces[-1][-1]:\n            pieces[0][:0]=pieces.pop()[:-1]\n        pieces=[pc for pc in pieces if len(pc)>=2]\n        out.append([[[str(x),str(y)] for x,y in pc] for pc in pieces])\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([[[[1, 1], [4, 1], [4, 4]], False]], 6), [[[['1', '1'], ['4', '1'], ['4', '4']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 6), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 6), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 6), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 6), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 6), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 6), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 6), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 6), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 6), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 6), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 2:\n    check('explicit case 0', solve([[[[1, 1], [5, 1], [5, 5]], False]], 7), [[[['1', '1'], ['5', '1'], ['5', '5']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 7), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 7), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 7), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 7), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 7), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 7), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 7), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 7), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 7), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 7), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 3:\n    check('explicit case 0', solve([[[[1, 1], [6, 1], [6, 6]], False]], 8), [[[['1', '1'], ['6', '1'], ['6', '6']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 8), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 8), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 8), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 8), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 8), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 8), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 8), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 8), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 8), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 8), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 4:\n    check('explicit case 0', solve([[[[1, 1], [7, 1], [7, 7]], False]], 9), [[[['1', '1'], ['7', '1'], ['7', '7']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 9), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 9), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 9), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 9), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 9), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 9), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 9), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 9), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 9), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 9), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 5:\n    check('explicit case 0', solve([[[[1, 1], [8, 1], [8, 8]], False]], 10), [[[['1', '1'], ['8', '1'], ['8', '8']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 10), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 10), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 10), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 10), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 10), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 10), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 10), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 10), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 10), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 10), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\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":"1aa81d0e6ec7dc2fb2b4d31419d793e96cf736f65bee722ae280d9d137fd6b00","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(commands, size):\n    def seg(p,q):\n        t0,t1=Fraction(0),Fraction(1)\n        for d,e in ((q[0]-p[0],p[0]),(q[1]-p[1],p[1])):\n            for pp,qq in ((-d,e),(d,size-1-e)):\n                if pp==0:\n                    if qq<0: return None\n                else:\n                    u=qq/pp\n                    if pp<0: t0=max(t0,u)\n                    else: t1=min(t1,u)\n        if t0>t1: return None\n        a=(p[0]+t0*(q[0]-p[0]),p[1]+t0*(q[1]-p[1]))\n        b=(p[0]+t1*(q[0]-p[0]),p[1]+t1*(q[1]-p[1]))\n        return a,b\n    out=[]\n    for points,closed in commands:\n        pts=[(Fraction(x),Fraction(y)) for x,y in points]\n        edges=list(zip(pts,pts[1:]))\n        if closed and len(pts)>2: edges.append((pts[-1],pts[0]))\n        pieces=[]\n        current=None\n        for p,q in edges:\n            part=seg(p,q)\n            if part is None:\n                current=None\n                continue\n            a,b=part\n            if current is not None:\n                if b!=a: current.append(b)\n            else:\n                current=[a] if a==b else [a,b]\n                pieces.append(current)\n        if closed and len(pieces)>1 and pieces[0][0]==pieces[-1][-1]:\n            pieces[0][:0]=pieces.pop()[:-1]\n        pieces=[pc for pc in pieces if len(pc)>=2]\n        out.append([[[str(x),str(y)] for x,y in pc] for pc in pieces])\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([[[[1, 1], [4, 1], [4, 4]], False]], 6), [[[['1', '1'], ['4', '1'], ['4', '4']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 6), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 6), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 6), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 6), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 6), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 6), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 6), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 6), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 6), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 6), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 2:\n    check('explicit case 0', solve([[[[1, 1], [5, 1], [5, 5]], False]], 7), [[[['1', '1'], ['5', '1'], ['5', '5']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 7), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 7), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 7), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 7), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 7), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 7), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 7), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 7), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 7), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 7), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 3:\n    check('explicit case 0', solve([[[[1, 1], [6, 1], [6, 6]], False]], 8), [[[['1', '1'], ['6', '1'], ['6', '6']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 8), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 8), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 8), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 8), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 8), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 8), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 8), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 8), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 8), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 8), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 4:\n    check('explicit case 0', solve([[[[1, 1], [7, 1], [7, 7]], False]], 9), [[[['1', '1'], ['7', '1'], ['7', '7']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 9), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 9), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 9), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 9), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 9), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 9), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 9), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 9), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 9), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 9), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 5:\n    check('explicit case 0', solve([[[[1, 1], [8, 1], [8, 8]], False]], 10), [[[['1', '1'], ['8', '1'], ['8', '8']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 10), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 10), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 10), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 10), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 10), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 10), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 10), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 10), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 10), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 10), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\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":"9b9082edd1e8f6683936206a465d03e87103ffcd2fed498813cae88c4484129d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(commands, size):\n    def seg(p,q):\n        t0,t1=Fraction(0),Fraction(1)\n        for d,e in ((q[0]-p[0],p[0]),(q[1]-p[1],p[1])):\n            for pp,qq in ((-d,e),(d,size-1-e)):\n                if pp==0:\n                    if qq<0: return None\n                else:\n                    u=qq/pp\n                    if pp<0: t0=max(t0,u)\n                    else: t1=min(t1,u)\n        if t0>t1: return None\n        a=(p[0]+t0*(q[0]-p[0]),p[1]+t0*(q[1]-p[1]))\n        b=(p[0]+t1*(q[0]-p[0]),p[1]+t1*(q[1]-p[1]))\n        return a,b\n    out=[]\n    for points,closed in commands:\n        pts=[(Fraction(x),Fraction(y)) for x,y in points]\n        edges=list(zip(pts,pts[1:]))\n        if closed and len(pts)>2: edges.append((pts[-1],pts[0]))\n        pieces=[]\n        current=None\n        for p,q in edges:\n            part=seg(p,q)\n            if part is None:\n                current=None\n                continue\n            a,b=part\n            if current is not None and current[-1]==a:\n                if b!=a: current.append(b)\n            else:\n                current=[a] if a==b else [a,b]\n                pieces.append(current)\n        if closed and len(pieces)>1 and pieces[0][0]==pieces[-1][-1]:\n            pieces[0][:0]=pieces.pop()[:-1]\n        pieces=[pc for pc in pieces if len(pc)>=2]\n        out.append([[[str(x),str(y)] for x,y in pc] for pc in pieces])\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([[[[1, 1], [4, 1], [4, 4]], False]], 6), [[[['1', '1'], ['4', '1'], ['4', '4']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 6), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 6), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 6), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 6), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 6), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 6), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 6), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 6), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 6), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 6), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 2:\n    check('explicit case 0', solve([[[[1, 1], [5, 1], [5, 5]], False]], 7), [[[['1', '1'], ['5', '1'], ['5', '5']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 7), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 7), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 7), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 7), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 7), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 7), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 7), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 7), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 7), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 7), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 3:\n    check('explicit case 0', solve([[[[1, 1], [6, 1], [6, 6]], False]], 8), [[[['1', '1'], ['6', '1'], ['6', '6']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 8), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 8), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 8), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 8), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 8), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 8), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 8), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 8), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 8), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 8), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 4:\n    check('explicit case 0', solve([[[[1, 1], [7, 1], [7, 7]], False]], 9), [[[['1', '1'], ['7', '1'], ['7', '7']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 9), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 9), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 9), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 9), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 9), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 9), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 9), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 9), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 9), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 9), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\nif N == 5:\n    check('explicit case 0', solve([[[[1, 1], [8, 1], [8, 8]], False]], 10), [[[['1', '1'], ['8', '1'], ['8', '8']]]])\n    check('explicit case 1', solve([[[[1, 1], [1, -3], [3, 1]], False]], 10), [[[['1', '1'], ['1', '0']], [['5/2', '0'], ['3', '1']]]])\n    check('explicit case 2', solve([[[[1, 1], [2, 1], [2, 1], [3, 2]], False]], 10), [[[['1', '1'], ['2', '1'], ['3', '2']]]])\n    check('explicit case 3', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], False]], 10), [[[['1', '1'], ['1', '0']], [['3', '0'], ['3', '1']]]])\n    check('explicit case 4', solve([[[[1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 10), [[[['1', '0'], ['2', '2']]]])\n    check('explicit case 5', solve([[[[-1, 1], [1, -1]], False]], 10), [[]])\n    check('explicit case 6', solve([[[[1, 1], [3, 1], [2, 3]], True]], 10), [[[['1', '1'], ['3', '1'], ['2', '3'], ['1', '1']]]])\n    check('explicit case 7', solve([[[[1, 1], [3, 1]], True]], 10), [[[['1', '1'], ['3', '1']]]])\n    check('explicit case 8', solve([[[[1, 1], [1, -2], [3, -2], [3, 1]], True]], 10), [[[['3', '0'], ['3', '1'], ['1', '1'], ['1', '0']]]])\n    check('explicit case 9', solve([[[[-2, 2], [2, 2], [2, -2], [-2, 2]], False]], 10), [[[['0', '2'], ['2', '2'], ['2', '0']]]])\n    check('explicit case 10', solve([[[[2, 1], [1, 0], [1, -2], [3, -2], [1, 0], [2, 2]], False]], 10), [[[['2', '1'], ['1', '0']], [['1', '0'], ['2', '2']]]])\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-polyline-strip-window-clip-reentry-merged","generated_at":"2026-09-29T14:45:22.371688+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 reentry merged. Each command is [points,closed]. Consecutive vertices (plus the closing edge when closed and at least three points) are clipped against the closed pixel-center window [0,size-1]x[0,size-1] with exact parametric clipping. Visible parts that start where the current piece ends extend it (skipping zero-length repeats); any other visible part starts a new piece; a fully rejected edge ends the current piece. For closed paths, a last piece ending where the first piece begins is merged in front of it without repeating the joint. Pieces with fewer than two vertices are dropped. Vertices are exact rational strings.","root_cause":"A part that re-enters the window at a different point is appended to the previous piece, drawing a false connector along the boundary.","sha256":"8314e69408c7ed8471423531be9c9192ccb013a99a0ef643397c32cdbf3ca9fc","title":"Polyline strip window clip: reentry merged · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.638,"exit_code":1,"observations":[{"actual":[[[["1","1"],["4","1"],["4","4"]]]],"check":"explicit case 0","expected":[[[["1","1"],["4","1"],["4","4"]]]],"passed":true},{"actual":[[[["1","1"],["1","0"],["3","1"]]]],"check":"explicit case 1","expected":[[[["1","1"],["1","0"]],[["5/2","0"],["3","1"]]]],"passed":false},{"actual":[[[["1","1"],["2","1"],["3","2"]]]],"check":"explicit case 2","expected":[[[["1","1"],["2","1"],["3","2"]]]],"passed":true},{"actual":[[[["1","1"],["1","0"]],[["3","0"],["3","1"]]]],"check":"explicit case 3","expected":[[[["1","1"],["1","0"]],[["3","0"],["3","1"]]]],"passed":true},{"actual":[[[["1","0"],["2","2"]]]],"check":"explicit case 4","expected":[[[["1","0"],["2","2"]]]],"passed":true},{"actual":[[]],"check":"explicit case 5","expected":[[]],"passed":true},{"actual":[[[["1","1"],["3","1"],["2","3"],["1","1"]]]],"check":"explicit case 6","expected":[[[["1","1"],["3","1"],["2","3"],["1","1"]]]],"passed":true},{"actual":[[[["1","1"],["3","1"]]]],"check":"explicit case 7","expected":[[[["1","1"],["3","1"]]]],"passed":true},{"actual":[[[["3","0"],["3","1"],["1","1"],["1","0"]]]],"check":"explicit case 8","expected":[[[["3","0"],["3","1"],["1","1"],["1","0"]]]],"passed":true},{"actual":[[[["0","2"],["2","2"],["2","0"]]]],"check":"explicit case 9","expected":[[[["0","2"],["2","2"],["2","0"]]]],"passed":true},{"actual":[[[["2","1"],["1","0"]],[["1","0"],["2","2"]]]],"check":"explicit case 10","expected":[[[["2","1"],["1","0"]],[["1","0"],["2","2"]]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit case 0\", \"actual\": [[[[\"1\", \"1\"], [\"4\", \"1\"], [\"4\", \"4\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"4\", \"1\"], [\"4\", \"4\"]]]], \"passed\": true}, {\"check\": \"explicit case 1\", \"actual\": [[[[\"1\", \"1\"], [\"1\", \"0\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"5/2\", \"0\"], [\"3\", \"1\"]]]], \"passed\": false}, {\"check\": \"explicit case 2\", \"actual\": [[[[\"1\", \"1\"], [\"2\", \"1\"], [\"3\", \"2\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"2\", \"1\"], [\"3\", \"2\"]]]], \"passed\": true}, {\"check\": \"explicit case 3\", \"actual\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"3\", \"0\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"3\", \"0\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 4\", \"actual\": [[[[\"1\", \"0\"], [\"2\", \"2\"]]]], \"expected\": [[[[\"1\", \"0\"], [\"2\", \"2\"]]]], \"passed\": true}, {\"check\": \"explicit case 5\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"explicit case 6\", \"actual\": [[[[\"1\", \"1\"], [\"3\", \"1\"], [\"2\", \"3\"], [\"1\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"3\", \"1\"], [\"2\", \"3\"], [\"1\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 7\", \"actual\": [[[[\"1\", \"1\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 8\", \"actual\": [[[[\"3\", \"0\"], [\"3\", \"1\"], [\"1\", \"1\"], [\"1\", \"0\"]]]], \"expected\": [[[[\"3\", \"0\"], [\"3\", \"1\"], [\"1\", \"1\"], [\"1\", \"0\"]]]], \"passed\": true}, {\"check\": \"explicit case 9\", \"actual\": [[[[\"0\", \"2\"], [\"2\", \"2\"], [\"2\", \"0\"]]]], \"expected\": [[[[\"0\", \"2\"], [\"2\", \"2\"], [\"2\", \"0\"]]]], \"passed\": true}, {\"check\": \"explicit case 10\", \"actual\": [[[[\"2\", \"1\"], [\"1\", \"0\"]], [[\"1\", \"0\"], [\"2\", \"2\"]]]], \"expected\": [[[[\"2\", \"1\"], [\"1\", \"0\"]], [[\"1\", \"0\"], [\"2\", \"2\"]]]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":49.648,"exit_code":1,"observations":[{"actual":[[[["1","1"],["4","1"],["4","4"]]]],"check":"explicit case 0","expected":[[[["1","1"],["4","1"],["4","4"]]]],"passed":true},{"actual":[[[["1","1"],["1","0"],["3","1"]]]],"check":"explicit case 1","expected":[[[["1","1"],["1","0"]],[["5/2","0"],["3","1"]]]],"passed":false},{"actual":[[[["1","1"],["2","1"],["3","2"]]]],"check":"explicit case 2","expected":[[[["1","1"],["2","1"],["3","2"]]]],"passed":true},{"actual":[[[["1","1"],["1","0"]],[["3","0"],["3","1"]]]],"check":"explicit case 3","expected":[[[["1","1"],["1","0"]],[["3","0"],["3","1"]]]],"passed":true},{"actual":[[[["1","0"],["2","2"]]]],"check":"explicit case 4","expected":[[[["1","0"],["2","2"]]]],"passed":true},{"actual":[[]],"check":"explicit case 5","expected":[[]],"passed":true},{"actual":[[[["1","1"],["3","1"],["2","3"],["1","1"]]]],"check":"explicit case 6","expected":[[[["1","1"],["3","1"],["2","3"],["1","1"]]]],"passed":true},{"actual":[[[["1","1"],["3","1"]]]],"check":"explicit case 7","expected":[[[["1","1"],["3","1"]]]],"passed":true},{"actual":[[[["3","0"],["3","1"],["1","1"],["1","0"]]]],"check":"explicit case 8","expected":[[[["3","0"],["3","1"],["1","1"],["1","0"]]]],"passed":true},{"actual":[[[["0","2"],["2","2"],["2","0"]]]],"check":"explicit case 9","expected":[[[["0","2"],["2","2"],["2","0"]]]],"passed":true},{"actual":[[[["2","1"],["1","0"]],[["1","0"],["2","2"]]]],"check":"explicit case 10","expected":[[[["2","1"],["1","0"]],[["1","0"],["2","2"]]]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit case 0\", \"actual\": [[[[\"1\", \"1\"], [\"4\", \"1\"], [\"4\", \"4\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"4\", \"1\"], [\"4\", \"4\"]]]], \"passed\": true}, {\"check\": \"explicit case 1\", \"actual\": [[[[\"1\", \"1\"], [\"1\", \"0\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"5/2\", \"0\"], [\"3\", \"1\"]]]], \"passed\": false}, {\"check\": \"explicit case 2\", \"actual\": [[[[\"1\", \"1\"], [\"2\", \"1\"], [\"3\", \"2\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"2\", \"1\"], [\"3\", \"2\"]]]], \"passed\": true}, {\"check\": \"explicit case 3\", \"actual\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"3\", \"0\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"3\", \"0\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 4\", \"actual\": [[[[\"1\", \"0\"], [\"2\", \"2\"]]]], \"expected\": [[[[\"1\", \"0\"], [\"2\", \"2\"]]]], \"passed\": true}, {\"check\": \"explicit case 5\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"explicit case 6\", \"actual\": [[[[\"1\", \"1\"], [\"3\", \"1\"], [\"2\", \"3\"], [\"1\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"3\", \"1\"], [\"2\", \"3\"], [\"1\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 7\", \"actual\": [[[[\"1\", \"1\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 8\", \"actual\": [[[[\"3\", \"0\"], [\"3\", \"1\"], [\"1\", \"1\"], [\"1\", \"0\"]]]], \"expected\": [[[[\"3\", \"0\"], [\"3\", \"1\"], [\"1\", \"1\"], [\"1\", \"0\"]]]], \"passed\": true}, {\"check\": \"explicit case 9\", \"actual\": [[[[\"0\", \"2\"], [\"2\", \"2\"], [\"2\", \"0\"]]]], \"expected\": [[[[\"0\", \"2\"], [\"2\", \"2\"], [\"2\", \"0\"]]]], \"passed\": true}, {\"check\": \"explicit case 10\", \"actual\": [[[[\"2\", \"1\"], [\"1\", \"0\"]], [[\"1\", \"0\"], [\"2\", \"2\"]]]], \"expected\": [[[[\"2\", \"1\"], [\"1\", \"0\"]], [[\"1\", \"0\"], [\"2\", \"2\"]]]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.599,"exit_code":0,"observations":[{"actual":[[[["1","1"],["4","1"],["4","4"]]]],"check":"explicit case 0","expected":[[[["1","1"],["4","1"],["4","4"]]]],"passed":true},{"actual":[[[["1","1"],["1","0"]],[["5/2","0"],["3","1"]]]],"check":"explicit case 1","expected":[[[["1","1"],["1","0"]],[["5/2","0"],["3","1"]]]],"passed":true},{"actual":[[[["1","1"],["2","1"],["3","2"]]]],"check":"explicit case 2","expected":[[[["1","1"],["2","1"],["3","2"]]]],"passed":true},{"actual":[[[["1","1"],["1","0"]],[["3","0"],["3","1"]]]],"check":"explicit case 3","expected":[[[["1","1"],["1","0"]],[["3","0"],["3","1"]]]],"passed":true},{"actual":[[[["1","0"],["2","2"]]]],"check":"explicit case 4","expected":[[[["1","0"],["2","2"]]]],"passed":true},{"actual":[[]],"check":"explicit case 5","expected":[[]],"passed":true},{"actual":[[[["1","1"],["3","1"],["2","3"],["1","1"]]]],"check":"explicit case 6","expected":[[[["1","1"],["3","1"],["2","3"],["1","1"]]]],"passed":true},{"actual":[[[["1","1"],["3","1"]]]],"check":"explicit case 7","expected":[[[["1","1"],["3","1"]]]],"passed":true},{"actual":[[[["3","0"],["3","1"],["1","1"],["1","0"]]]],"check":"explicit case 8","expected":[[[["3","0"],["3","1"],["1","1"],["1","0"]]]],"passed":true},{"actual":[[[["0","2"],["2","2"],["2","0"]]]],"check":"explicit case 9","expected":[[[["0","2"],["2","2"],["2","0"]]]],"passed":true},{"actual":[[[["2","1"],["1","0"]],[["1","0"],["2","2"]]]],"check":"explicit case 10","expected":[[[["2","1"],["1","0"]],[["1","0"],["2","2"]]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit case 0\", \"actual\": [[[[\"1\", \"1\"], [\"4\", \"1\"], [\"4\", \"4\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"4\", \"1\"], [\"4\", \"4\"]]]], \"passed\": true}, {\"check\": \"explicit case 1\", \"actual\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"5/2\", \"0\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"5/2\", \"0\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 2\", \"actual\": [[[[\"1\", \"1\"], [\"2\", \"1\"], [\"3\", \"2\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"2\", \"1\"], [\"3\", \"2\"]]]], \"passed\": true}, {\"check\": \"explicit case 3\", \"actual\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"3\", \"0\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"1\", \"0\"]], [[\"3\", \"0\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 4\", \"actual\": [[[[\"1\", \"0\"], [\"2\", \"2\"]]]], \"expected\": [[[[\"1\", \"0\"], [\"2\", \"2\"]]]], \"passed\": true}, {\"check\": \"explicit case 5\", \"actual\": [[]], \"expected\": [[]], \"passed\": true}, {\"check\": \"explicit case 6\", \"actual\": [[[[\"1\", \"1\"], [\"3\", \"1\"], [\"2\", \"3\"], [\"1\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"3\", \"1\"], [\"2\", \"3\"], [\"1\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 7\", \"actual\": [[[[\"1\", \"1\"], [\"3\", \"1\"]]]], \"expected\": [[[[\"1\", \"1\"], [\"3\", \"1\"]]]], \"passed\": true}, {\"check\": \"explicit case 8\", \"actual\": [[[[\"3\", \"0\"], [\"3\", \"1\"], [\"1\", \"1\"], [\"1\", \"0\"]]]], \"expected\": [[[[\"3\", \"0\"], [\"3\", \"1\"], [\"1\", \"1\"], [\"1\", \"0\"]]]], \"passed\": true}, {\"check\": \"explicit case 9\", \"actual\": [[[[\"0\", \"2\"], [\"2\", \"2\"], [\"2\", \"0\"]]]], \"expected\": [[[[\"0\", \"2\"], [\"2\", \"2\"], [\"2\", \"0\"]]]], \"passed\": true}, {\"check\": \"explicit case 10\", \"actual\": [[[[\"2\", \"1\"], [\"1\", \"0\"]], [[\"1\", \"0\"], [\"2\", \"2\"]]]], \"expected\": [[[[\"2\", \"1\"], [\"1\", \"0\"]], [[\"1\", \"0\"], [\"2\", \"2\"]]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}