{"abstract":"Intersection divides by summed endpoint distances rather than their difference.","category":"Raster clipping","checks":12,"contract":"Clip ordered segments in homogeneous (x,w,u) coordinates against requested left x+w>=0, right w-x>=0 and eye w>=1 halfspaces. Interpolate every component at intersections before perspective division; retain endpoint order. Output exact rational strings, or null for rejected segments. The integer surface size scales horizontal halfspaces.","evaluation_group":"s3-raster-clipping-homogeneous-segment-clip","failed_approach":"Absolute denominator loses the sign correction when the first endpoint is outside.","family":"s3-raster-clipping-homogeneous-segment-clip-intersection-denominator","id":"FA-51001","implementations":{"attempt":{"sha256":"2f126fd60707b0bb1bf5b8012f0db09c8f0e1cb1a6a25c937ae1225915e5b9bf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    from fractions import Fraction\n    out=[]\n    for first,last,planes in commands:\n        a=list(map(Fraction,first)); b=list(map(Fraction,last))\n        original_a=list(a); original_b=list(b)\n        rejected=False\n        for plane in planes:\n            def distance(p):\n                if plane=='left': return p[0]+size*p[1]\n                if plane=='right': return size*p[1]-p[0]\n                return p[1]-1\n            da=distance(a); db=distance(b)\n            ia=da>=0; ib=db>=0\n            if not ia and not ib: rejected=True; break\n            if ia and ib: continue\n            t=da/(abs(da)+abs(db))\n            point=[a[i]+t*(b[i]-a[i]) for i in range(3)]\n            if not ia: a=point\n            else: b=point\n        out.append(None if rejected else [[str(v) for v in a],[str(v) for v in b]])\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 sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 4), [[['-4', '1', '8'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 4), [[['0', '1', '0'], ['4', '1', '4']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 4), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 4), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 4), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 4), [[['-4', '1', '8'], ['4', '1', '16']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 4), [[['0', '1', '0'], ['4', '1', '4']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 4), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 4), [[['0', '1', '12'], ['6', '3/2', '18']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 4), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 4), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 4), [[['0', '1', '12'], ['40/9', '10/9', '40/3']]])\nif N == 2:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 5), [[['-5', '1', '7'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 5), [[['0', '1', '0'], ['5', '1', '5']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 5), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 5), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 5), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 5), [[['-5', '1', '7'], ['5', '1', '17']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 5), [[['0', '1', '0'], ['5', '1', '5']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 5), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 5), [[['0', '1', '12'], ['60/7', '12/7', '144/7']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 5), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 5), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 5), [[['0', '1', '12'], ['40/7', '8/7', '96/7']]])\nif N == 3:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 6), [[['-6', '1', '6'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 6), [[['0', '1', '0'], ['6', '1', '6']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 6), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 6), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 6), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 6), [[['-6', '1', '6'], ['6', '1', '18']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 6), [[['0', '1', '0'], ['6', '1', '6']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 6), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 6), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 6), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 6), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 6), [[['0', '1', '12'], ['120/17', '20/17', '240/17']]])\nif N == 4:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 7), [[['-7', '1', '5'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 7), [[['0', '1', '0'], ['7', '1', '7']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 7), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 7), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 7), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 7), [[['-7', '1', '5'], ['7', '1', '19']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 7), [[['0', '1', '0'], ['7', '1', '7']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 7), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 7), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 7), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 7), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 7), [[['0', '1', '12'], ['280/33', '40/33', '160/11']]])\nif N == 5:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 8), [[['-8', '1', '4'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 8), [[['0', '1', '0'], ['8', '1', '8']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 8), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 8), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 8), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 8), [[['-8', '1', '4'], ['8', '1', '20']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 8), [[['0', '1', '0'], ['8', '1', '8']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 8), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 8), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 8), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 8), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 8), [[['0', '1', '12'], ['10', '5/4', '15']]])\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":"2f56e4b56ee7ac8d8ad0a418a88a546807a686f88c2603c005ca9fa64d100f06","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    from fractions import Fraction\n    out=[]\n    for first,last,planes in commands:\n        a=list(map(Fraction,first)); b=list(map(Fraction,last))\n        original_a=list(a); original_b=list(b)\n        rejected=False\n        for plane in planes:\n            def distance(p):\n                if plane=='left': return p[0]+size*p[1]\n                if plane=='right': return size*p[1]-p[0]\n                return p[1]-1\n            da=distance(a); db=distance(b)\n            ia=da>=0; ib=db>=0\n            if not ia and not ib: rejected=True; break\n            if ia and ib: continue\n            t=da/(da+db) if da+db else Fraction(0)\n            point=[a[i]+t*(b[i]-a[i]) for i in range(3)]\n            if not ia: a=point\n            else: b=point\n        out.append(None if rejected else [[str(v) for v in a],[str(v) for v in b]])\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 sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 4), [[['-4', '1', '8'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 4), [[['0', '1', '0'], ['4', '1', '4']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 4), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 4), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 4), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 4), [[['-4', '1', '8'], ['4', '1', '16']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 4), [[['0', '1', '0'], ['4', '1', '4']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 4), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 4), [[['0', '1', '12'], ['6', '3/2', '18']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 4), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 4), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 4), [[['0', '1', '12'], ['40/9', '10/9', '40/3']]])\nif N == 2:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 5), [[['-5', '1', '7'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 5), [[['0', '1', '0'], ['5', '1', '5']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 5), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 5), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 5), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 5), [[['-5', '1', '7'], ['5', '1', '17']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 5), [[['0', '1', '0'], ['5', '1', '5']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 5), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 5), [[['0', '1', '12'], ['60/7', '12/7', '144/7']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 5), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 5), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 5), [[['0', '1', '12'], ['40/7', '8/7', '96/7']]])\nif N == 3:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 6), [[['-6', '1', '6'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 6), [[['0', '1', '0'], ['6', '1', '6']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 6), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 6), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 6), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 6), [[['-6', '1', '6'], ['6', '1', '18']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 6), [[['0', '1', '0'], ['6', '1', '6']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 6), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 6), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 6), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 6), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 6), [[['0', '1', '12'], ['120/17', '20/17', '240/17']]])\nif N == 4:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 7), [[['-7', '1', '5'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 7), [[['0', '1', '0'], ['7', '1', '7']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 7), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 7), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 7), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 7), [[['-7', '1', '5'], ['7', '1', '19']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 7), [[['0', '1', '0'], ['7', '1', '7']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 7), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 7), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 7), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 7), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 7), [[['0', '1', '12'], ['280/33', '40/33', '160/11']]])\nif N == 5:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 8), [[['-8', '1', '4'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 8), [[['0', '1', '0'], ['8', '1', '8']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 8), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 8), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 8), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 8), [[['-8', '1', '4'], ['8', '1', '20']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 8), [[['0', '1', '0'], ['8', '1', '8']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 8), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 8), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 8), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 8), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 8), [[['0', '1', '12'], ['10', '5/4', '15']]])\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":"551181ac5740f2507d9332ca503db85d2645c36fd736ab690694549542774375","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(commands, size):\n    from fractions import Fraction\n    out=[]\n    for first,last,planes in commands:\n        a=list(map(Fraction,first)); b=list(map(Fraction,last))\n        original_a=list(a); original_b=list(b)\n        rejected=False\n        for plane in planes:\n            def distance(p):\n                if plane=='left': return p[0]+size*p[1]\n                if plane=='right': return size*p[1]-p[0]\n                return p[1]-1\n            da=distance(a); db=distance(b)\n            ia=da>=0; ib=db>=0\n            if not ia and not ib: rejected=True; break\n            if ia and ib: continue\n            t=da/(da-db)\n            point=[a[i]+t*(b[i]-a[i]) for i in range(3)]\n            if not ia: a=point\n            else: b=point\n        out.append(None if rejected else [[str(v) for v in a],[str(v) for v in b]])\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 sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 4), [[['-4', '1', '8'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 4), [[['0', '1', '0'], ['4', '1', '4']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 4), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 4), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 4), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 4), [[['-4', '1', '8'], ['4', '1', '16']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 4), [[['0', '1', '0'], ['4', '1', '4']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 4), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 4), [[['0', '1', '12'], ['6', '3/2', '18']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 4), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 4), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 4), [[['0', '1', '12'], ['40/9', '10/9', '40/3']]])\nif N == 2:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 5), [[['-5', '1', '7'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 5), [[['0', '1', '0'], ['5', '1', '5']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 5), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 5), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 5), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 5), [[['-5', '1', '7'], ['5', '1', '17']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 5), [[['0', '1', '0'], ['5', '1', '5']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 5), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 5), [[['0', '1', '12'], ['60/7', '12/7', '144/7']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 5), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 5), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 5), [[['0', '1', '12'], ['40/7', '8/7', '96/7']]])\nif N == 3:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 6), [[['-6', '1', '6'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 6), [[['0', '1', '0'], ['6', '1', '6']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 6), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 6), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 6), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 6), [[['-6', '1', '6'], ['6', '1', '18']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 6), [[['0', '1', '0'], ['6', '1', '6']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 6), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 6), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 6), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 6), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 6), [[['0', '1', '12'], ['120/17', '20/17', '240/17']]])\nif N == 4:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 7), [[['-7', '1', '5'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 7), [[['0', '1', '0'], ['7', '1', '7']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 7), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 7), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 7), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 7), [[['-7', '1', '5'], ['7', '1', '19']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 7), [[['0', '1', '0'], ['7', '1', '7']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 7), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 7), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 7), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 7), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 7), [[['0', '1', '12'], ['280/33', '40/33', '160/11']]])\nif N == 5:\n    check('explicit sequence 0', solve([[[-12, 1, 0], [0, 1, 12], ['left']]], 8), [[['-8', '1', '4'], ['0', '1', '12']]])\n    check('explicit sequence 1', solve([[[0, 1, 0], [12, 1, 12], ['right']]], 8), [[['0', '1', '0'], ['8', '1', '8']]])\n    check('explicit sequence 2', solve([[[-20, 1, 0], [-15, 1, 5], ['left']]], 8), [None])\n    check('explicit sequence 3', solve([[[-4, 1, 0], [-8, 2, 8], ['left']]], 8), [[['-4', '1', '0'], ['-8', '2', '8']]])\n    check('explicit sequence 4', solve([[[0, 0, 0], [0, 2, 10], ['eye']]], 8), [[['0', '1', '5'], ['0', '2', '10']]])\n    check('explicit sequence 5', solve([[[-12, 1, 0], [12, 1, 24], ['left', 'right']]], 8), [[['-8', '1', '4'], ['8', '1', '20']]])\n    check('explicit sequence 6', solve([[[0, 1, 0], [12, 1, 12], ['left', 'right']]], 8), [[['0', '1', '0'], ['8', '1', '8']]])\n    check('explicit sequence 7', solve([[[0, 1, 0], [1, 1, 1], ['eye', 'left', 'right']]], 8), [[['0', '1', '0'], ['1', '1', '1']]])\n    check('explicit sequence 8', solve([[[-12, 0, 0], [12, 2, 24], ['left', 'right', 'eye']]], 8), [[['0', '1', '12'], ['12', '2', '24']]])\n    check('explicit sequence 9', solve([[[-15, 1, 0], [-20, 1, 5], ['left']]], 8), [None])\n    check('explicit sequence 10', solve([[[0, 0, 0], [0, 1, 1], ['eye']]], 8), [[['0', '1', '1'], ['0', '1', '1']]])\n    check('explicit sequence 11', solve([[[-40, 0, 0], [40, 2, 24], ['right', 'eye']]], 8), [[['0', '1', '12'], ['10', '5/4', '15']]])\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"Finite one-dimensional integer sample sets model coverage state only; no geometric intersection, memory layout, GPU or graphics-standard 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-homogeneous-segment-clip-intersection-denominator","generated_at":"2026-09-29T14:45:14.597658+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Raster clip state can leak coverage across draws even when every individual region is valid.","repair":"Apply the documented state transition at intersection denominator. Clip ordered segments in homogeneous (x,w,u) coordinates against requested left x+w>=0, right w-x>=0 and eye w>=1 halfspaces. Interpolate every component at intersections before perspective division; retain endpoint order. Output exact rational strings, or null for rejected segments. The integer surface size scales horizontal halfspaces.","root_cause":"Intersection divides by summed endpoint distances rather than their difference.","sha256":"626c84b2dbcbe813c0abadd2db93064818a6b9ba5648b04c658c686b292cdb48","title":"Homogeneous segment clip: intersection denominator · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.808,"exit_code":1,"observations":[{"actual":[[["-20","1","-8"],["0","1","12"]]],"check":"explicit sequence 0","expected":[[["-4","1","8"],["0","1","12"]]],"passed":false},{"actual":[[["0","1","0"],["4","1","4"]]],"check":"explicit sequence 1","expected":[[["0","1","0"],["4","1","4"]]],"passed":true},{"actual":[null],"check":"explicit sequence 2","expected":[null],"passed":true},{"actual":[[["-4","1","0"],["-8","2","8"]]],"check":"explicit sequence 3","expected":[[["-4","1","0"],["-8","2","8"]]],"passed":true},{"actual":[[["0","-1","-5"],["0","2","10"]]],"check":"explicit sequence 4","expected":[[["0","1","5"],["0","2","10"]]],"passed":false},{"actual":[[["-20","1","-8"],["4","1","16"]]],"check":"explicit sequence 5","expected":[[["-4","1","8"],["4","1","16"]]],"passed":false},{"actual":[[["0","1","0"],["4","1","4"]]],"check":"explicit sequence 6","expected":[[["0","1","0"],["4","1","4"]]],"passed":true},{"actual":[[["0","1","0"],["1","1","1"]]],"check":"explicit sequence 7","expected":[[["0","1","0"],["1","1","1"]]],"passed":true},{"actual":[[["-42","-5/2","-30"],["6","3/2","18"]]],"check":"explicit sequence 8","expected":[[["0","1","12"],["6","3/2","18"]]],"passed":false},{"actual":[null],"check":"explicit sequence 9","expected":[null],"passed":true},{"actual":[[["0","-1","-1"],["0","1","1"]]],"check":"explicit sequence 10","expected":[[["0","1","1"],["0","1","1"]]],"passed":false},{"actual":[[["-80","-1","-12"],["40/9","10/9","40/3"]]],"check":"explicit sequence 11","expected":[[["0","1","12"],["40/9","10/9","40/3"]]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit sequence 0\", \"actual\": [[[\"-20\", \"1\", \"-8\"], [\"0\", \"1\", \"12\"]]], \"expected\": [[[\"-4\", \"1\", \"8\"], [\"0\", \"1\", \"12\"]]], \"passed\": false}, {\"check\": \"explicit sequence 1\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"passed\": true}, {\"check\": \"explicit sequence 2\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"explicit sequence 3\", \"actual\": [[[\"-4\", \"1\", \"0\"], [\"-8\", \"2\", \"8\"]]], \"expected\": [[[\"-4\", \"1\", \"0\"], [\"-8\", \"2\", \"8\"]]], \"passed\": true}, {\"check\": \"explicit sequence 4\", \"actual\": [[[\"0\", \"-1\", \"-5\"], [\"0\", \"2\", \"10\"]]], \"expected\": [[[\"0\", \"1\", \"5\"], [\"0\", \"2\", \"10\"]]], \"passed\": false}, {\"check\": \"explicit sequence 5\", \"actual\": [[[\"-20\", \"1\", \"-8\"], [\"4\", \"1\", \"16\"]]], \"expected\": [[[\"-4\", \"1\", \"8\"], [\"4\", \"1\", \"16\"]]], \"passed\": false}, {\"check\": \"explicit sequence 6\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"passed\": true}, {\"check\": \"explicit sequence 7\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"1\", \"1\", \"1\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"1\", \"1\", \"1\"]]], \"passed\": true}, {\"check\": \"explicit sequence 8\", \"actual\": [[[\"-42\", \"-5/2\", \"-30\"], [\"6\", \"3/2\", \"18\"]]], \"expected\": [[[\"0\", \"1\", \"12\"], [\"6\", \"3/2\", \"18\"]]], \"passed\": false}, {\"check\": \"explicit sequence 9\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"explicit sequence 10\", \"actual\": [[[\"0\", \"-1\", \"-1\"], [\"0\", \"1\", \"1\"]]], \"expected\": [[[\"0\", \"1\", \"1\"], [\"0\", \"1\", \"1\"]]], \"passed\": false}, {\"check\": \"explicit sequence 11\", \"actual\": [[[\"-80\", \"-1\", \"-12\"], [\"40/9\", \"10/9\", \"40/3\"]]], \"expected\": [[[\"0\", \"1\", \"12\"], [\"40/9\", \"10/9\", \"40/3\"]]], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":46.919,"exit_code":1,"observations":[{"actual":[[["12","1","24"],["0","1","12"]]],"check":"explicit sequence 0","expected":[[["-4","1","8"],["0","1","12"]]],"passed":false},{"actual":[[["0","1","0"],["-12","1","-12"]]],"check":"explicit sequence 1","expected":[[["0","1","0"],["4","1","4"]]],"passed":false},{"actual":[null],"check":"explicit sequence 2","expected":[null],"passed":true},{"actual":[[["-4","1","0"],["-8","2","8"]]],"check":"explicit sequence 3","expected":[[["-4","1","0"],["-8","2","8"]]],"passed":true},{"actual":[[["0","0","0"],["0","2","10"]]],"check":"explicit sequence 4","expected":[[["0","1","5"],["0","2","10"]]],"passed":false},{"actual":[[["-36","1","-24"],["24","1","36"]]],"check":"explicit sequence 5","expected":[[["-4","1","8"],["4","1","16"]]],"passed":false},{"actual":[[["0","1","0"],["-12","1","-12"]]],"check":"explicit sequence 6","expected":[[["0","1","0"],["4","1","4"]]],"passed":false},{"actual":[[["0","1","0"],["1","1","1"]]],"check":"explicit sequence 7","expected":[[["0","1","0"],["1","1","1"]]],"passed":true},{"actual":[[["1248/19","123/19","1476/19"],["39/2","21/8","63/2"]]],"check":"explicit sequence 8","expected":[[["0","1","12"],["6","3/2","18"]]],"passed":false},{"actual":[null],"check":"explicit sequence 9","expected":[null],"passed":true},{"actual":[[["0","1","1"],["0","1","1"]]],"check":"explicit sequence 10","expected":[[["0","1","1"],["0","1","1"]]],"passed":true},{"actual":[[["-90","-5/4","-15"],["360","10","120"]]],"check":"explicit sequence 11","expected":[[["0","1","12"],["40/9","10/9","40/3"]]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit sequence 0\", \"actual\": [[[\"12\", \"1\", \"24\"], [\"0\", \"1\", \"12\"]]], \"expected\": [[[\"-4\", \"1\", \"8\"], [\"0\", \"1\", \"12\"]]], \"passed\": false}, {\"check\": \"explicit sequence 1\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"-12\", \"1\", \"-12\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"passed\": false}, {\"check\": \"explicit sequence 2\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"explicit sequence 3\", \"actual\": [[[\"-4\", \"1\", \"0\"], [\"-8\", \"2\", \"8\"]]], \"expected\": [[[\"-4\", \"1\", \"0\"], [\"-8\", \"2\", \"8\"]]], \"passed\": true}, {\"check\": \"explicit sequence 4\", \"actual\": [[[\"0\", \"0\", \"0\"], [\"0\", \"2\", \"10\"]]], \"expected\": [[[\"0\", \"1\", \"5\"], [\"0\", \"2\", \"10\"]]], \"passed\": false}, {\"check\": \"explicit sequence 5\", \"actual\": [[[\"-36\", \"1\", \"-24\"], [\"24\", \"1\", \"36\"]]], \"expected\": [[[\"-4\", \"1\", \"8\"], [\"4\", \"1\", \"16\"]]], \"passed\": false}, {\"check\": \"explicit sequence 6\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"-12\", \"1\", \"-12\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"passed\": false}, {\"check\": \"explicit sequence 7\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"1\", \"1\", \"1\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"1\", \"1\", \"1\"]]], \"passed\": true}, {\"check\": \"explicit sequence 8\", \"actual\": [[[\"1248/19\", \"123/19\", \"1476/19\"], [\"39/2\", \"21/8\", \"63/2\"]]], \"expected\": [[[\"0\", \"1\", \"12\"], [\"6\", \"3/2\", \"18\"]]], \"passed\": false}, {\"check\": \"explicit sequence 9\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"explicit sequence 10\", \"actual\": [[[\"0\", \"1\", \"1\"], [\"0\", \"1\", \"1\"]]], \"expected\": [[[\"0\", \"1\", \"1\"], [\"0\", \"1\", \"1\"]]], \"passed\": true}, {\"check\": \"explicit sequence 11\", \"actual\": [[[\"-90\", \"-5/4\", \"-15\"], [\"360\", \"10\", \"120\"]]], \"expected\": [[[\"0\", \"1\", \"12\"], [\"40/9\", \"10/9\", \"40/3\"]]], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.939,"exit_code":0,"observations":[{"actual":[[["-4","1","8"],["0","1","12"]]],"check":"explicit sequence 0","expected":[[["-4","1","8"],["0","1","12"]]],"passed":true},{"actual":[[["0","1","0"],["4","1","4"]]],"check":"explicit sequence 1","expected":[[["0","1","0"],["4","1","4"]]],"passed":true},{"actual":[null],"check":"explicit sequence 2","expected":[null],"passed":true},{"actual":[[["-4","1","0"],["-8","2","8"]]],"check":"explicit sequence 3","expected":[[["-4","1","0"],["-8","2","8"]]],"passed":true},{"actual":[[["0","1","5"],["0","2","10"]]],"check":"explicit sequence 4","expected":[[["0","1","5"],["0","2","10"]]],"passed":true},{"actual":[[["-4","1","8"],["4","1","16"]]],"check":"explicit sequence 5","expected":[[["-4","1","8"],["4","1","16"]]],"passed":true},{"actual":[[["0","1","0"],["4","1","4"]]],"check":"explicit sequence 6","expected":[[["0","1","0"],["4","1","4"]]],"passed":true},{"actual":[[["0","1","0"],["1","1","1"]]],"check":"explicit sequence 7","expected":[[["0","1","0"],["1","1","1"]]],"passed":true},{"actual":[[["0","1","12"],["6","3/2","18"]]],"check":"explicit sequence 8","expected":[[["0","1","12"],["6","3/2","18"]]],"passed":true},{"actual":[null],"check":"explicit sequence 9","expected":[null],"passed":true},{"actual":[[["0","1","1"],["0","1","1"]]],"check":"explicit sequence 10","expected":[[["0","1","1"],["0","1","1"]]],"passed":true},{"actual":[[["0","1","12"],["40/9","10/9","40/3"]]],"check":"explicit sequence 11","expected":[[["0","1","12"],["40/9","10/9","40/3"]]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"explicit sequence 0\", \"actual\": [[[\"-4\", \"1\", \"8\"], [\"0\", \"1\", \"12\"]]], \"expected\": [[[\"-4\", \"1\", \"8\"], [\"0\", \"1\", \"12\"]]], \"passed\": true}, {\"check\": \"explicit sequence 1\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"passed\": true}, {\"check\": \"explicit sequence 2\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"explicit sequence 3\", \"actual\": [[[\"-4\", \"1\", \"0\"], [\"-8\", \"2\", \"8\"]]], \"expected\": [[[\"-4\", \"1\", \"0\"], [\"-8\", \"2\", \"8\"]]], \"passed\": true}, {\"check\": \"explicit sequence 4\", \"actual\": [[[\"0\", \"1\", \"5\"], [\"0\", \"2\", \"10\"]]], \"expected\": [[[\"0\", \"1\", \"5\"], [\"0\", \"2\", \"10\"]]], \"passed\": true}, {\"check\": \"explicit sequence 5\", \"actual\": [[[\"-4\", \"1\", \"8\"], [\"4\", \"1\", \"16\"]]], \"expected\": [[[\"-4\", \"1\", \"8\"], [\"4\", \"1\", \"16\"]]], \"passed\": true}, {\"check\": \"explicit sequence 6\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"4\", \"1\", \"4\"]]], \"passed\": true}, {\"check\": \"explicit sequence 7\", \"actual\": [[[\"0\", \"1\", \"0\"], [\"1\", \"1\", \"1\"]]], \"expected\": [[[\"0\", \"1\", \"0\"], [\"1\", \"1\", \"1\"]]], \"passed\": true}, {\"check\": \"explicit sequence 8\", \"actual\": [[[\"0\", \"1\", \"12\"], [\"6\", \"3/2\", \"18\"]]], \"expected\": [[[\"0\", \"1\", \"12\"], [\"6\", \"3/2\", \"18\"]]], \"passed\": true}, {\"check\": \"explicit sequence 9\", \"actual\": [null], \"expected\": [null], \"passed\": true}, {\"check\": \"explicit sequence 10\", \"actual\": [[[\"0\", \"1\", \"1\"], [\"0\", \"1\", \"1\"]]], \"expected\": [[[\"0\", \"1\", \"1\"], [\"0\", \"1\", \"1\"]]], \"passed\": true}, {\"check\": \"explicit sequence 11\", \"actual\": [[[\"0\", \"1\", \"12\"], [\"40/9\", \"10/9\", \"40/3\"]]], \"expected\": [[[\"0\", \"1\", \"12\"], [\"40/9\", \"10/9\", \"40/3\"]]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}