{"abstract":"Mirrored images are drawn one pixel to the left with a transparent column on the right.","category":"Image orientation metadata","checks":8,"contract":"Input [w, h, tag]. Produce the canvas size and the 2D affine [a, b, c, d, e, f] (x' = a*x + c*y + e, y' = b*x + d*y + f, continuous coordinates, so mirroring an extent e maps x to e - x) that draws the stored image upright. Tags 5..8 use a [h, w] canvas; invalid tags are treated as 1.","evaluation_group":"w2-image-orientation-metadata-canvas-set-transform","failed_approach":"A negative translation moves the mirrored image completely off the canvas.","family":"w2-image-orientation-metadata-canvas-set-transform-mirror-offset","id":"FA-79181","implementations":{"attempt":{"sha256":"0f23edebdae7be6c9cc76cc48eb9306367d4fed1a7e1bb79cfd8958c5006d3a9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    w, h, tag = x\n    if tag not in (1, 2, 3, 4, 5, 6, 7, 8):\n        tag = 1\n    if tag == 1:\n        mat = [1, 0, 0, 1, 0, 0]\n    elif tag == 2:\n        mat = [-1, 0, 0, 1, -w, 0]\n    elif tag == 3:\n        mat = [-1, 0, 0, -1, w, h]\n    elif tag == 4:\n        mat = [1, 0, 0, -1, 0, h]\n    elif tag == 5:\n        mat = [0, 1, 1, 0, 0, 0]\n    elif tag == 6:\n        mat = [0, 1, -1, 0, h, 0]\n    elif tag == 7:\n        mat = [0, -1, -1, 0, h, w]\n    else:\n        mat = [0, -1, 1, 0, 0, w]\n    canvas = [h, w] if tag >= 5 else [w, h]\n    return {'canvas': canvas, 'matrix': mat}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[4000, 3784, 2], {'canvas': [4000, 3784], 'matrix': [-1, 0, 0, 1, 4000, 0]}], [[1227, 335, 2], {'canvas': [1227, 335], 'matrix': [-1, 0, 0, 1, 1227, 0]}], [[3307, 2787, 3], {'canvas': [3307, 2787], 'matrix': [-1, 0, 0, -1, 3307, 2787]}], [[2954, 1709, 1], {'canvas': [2954, 1709], 'matrix': [1, 0, 0, 1, 0, 0]}], [[58, 1879, 3], {'canvas': [58, 1879], 'matrix': [-1, 0, 0, -1, 58, 1879]}], [[2834, 740, 9], {'canvas': [2834, 740], 'matrix': [1, 0, 0, 1, 0, 0]}], [[1990, 1071, 4], {'canvas': [1990, 1071], 'matrix': [1, 0, 0, -1, 0, 1071]}], [[1499, 3901, 2], {'canvas': [1499, 3901], 'matrix': [-1, 0, 0, 1, 1499, 0]}]], [[[3502, 833, 2], {'canvas': [3502, 833], 'matrix': [-1, 0, 0, 1, 3502, 0]}], [[1326, 2796, 2], {'canvas': [1326, 2796], 'matrix': [-1, 0, 0, 1, 1326, 0]}], [[2349, 3183, 4], {'canvas': [2349, 3183], 'matrix': [1, 0, 0, -1, 0, 3183]}], [[1404, 638, 8], {'canvas': [638, 1404], 'matrix': [0, -1, 1, 0, 0, 1404]}], [[3672, 2107, 7], {'canvas': [2107, 3672], 'matrix': [0, -1, -1, 0, 2107, 3672]}], [[497, 2889, 6], {'canvas': [2889, 497], 'matrix': [0, 1, -1, 0, 2889, 0]}], [[1679, 3857, 0], {'canvas': [1679, 3857], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2424, 3685, 2], {'canvas': [2424, 3685], 'matrix': [-1, 0, 0, 1, 2424, 0]}]], [[[2623, 3832, 2], {'canvas': [2623, 3832], 'matrix': [-1, 0, 0, 1, 2623, 0]}], [[1805, 2091, 2], {'canvas': [1805, 2091], 'matrix': [-1, 0, 0, 1, 1805, 0]}], [[2580, 3384, 7], {'canvas': [3384, 2580], 'matrix': [0, -1, -1, 0, 3384, 2580]}], [[1742, 3974, 6], {'canvas': [3974, 1742], 'matrix': [0, 1, -1, 0, 3974, 0]}], [[2878, 1614, 0], {'canvas': [2878, 1614], 'matrix': [1, 0, 0, 1, 0, 0]}], [[1553, 978, 5], {'canvas': [978, 1553], 'matrix': [0, 1, 1, 0, 0, 0]}], [[2394, 1311, 0], {'canvas': [2394, 1311], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2824, 877, 2], {'canvas': [2824, 877], 'matrix': [-1, 0, 0, 1, 2824, 0]}]], [[[250, 1651, 2], {'canvas': [250, 1651], 'matrix': [-1, 0, 0, 1, 250, 0]}], [[3998, 2986, 2], {'canvas': [3998, 2986], 'matrix': [-1, 0, 0, 1, 3998, 0]}], [[2618, 2128, 9], {'canvas': [2618, 2128], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2422, 1413, 3], {'canvas': [2422, 1413], 'matrix': [-1, 0, 0, -1, 2422, 1413]}], [[397, 3269, 8], {'canvas': [3269, 397], 'matrix': [0, -1, 1, 0, 0, 397]}], [[3842, 908, 7], {'canvas': [908, 3842], 'matrix': [0, -1, -1, 0, 908, 3842]}], [[1888, 3423, 4], {'canvas': [1888, 3423], 'matrix': [1, 0, 0, -1, 0, 3423]}], [[1474, 1630, 2], {'canvas': [1474, 1630], 'matrix': [-1, 0, 0, 1, 1474, 0]}]], [[[3339, 1148, 2], {'canvas': [3339, 1148], 'matrix': [-1, 0, 0, 1, 3339, 0]}], [[850, 592, 2], {'canvas': [850, 592], 'matrix': [-1, 0, 0, 1, 850, 0]}], [[3653, 369, 3], {'canvas': [3653, 369], 'matrix': [-1, 0, 0, -1, 3653, 369]}], [[663, 894, 6], {'canvas': [894, 663], 'matrix': [0, 1, -1, 0, 894, 0]}], [[439, 1611, 8], {'canvas': [1611, 439], 'matrix': [0, -1, 1, 0, 0, 439]}], [[318, 2513, 3], {'canvas': [318, 2513], 'matrix': [-1, 0, 0, -1, 318, 2513]}], [[2840, 2668, 9], {'canvas': [2840, 2668], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2083, 1309, 2], {'canvas': [2083, 1309], 'matrix': [-1, 0, 0, 1, 2083, 0]}]]]\nlabels = [\"regression: horizontal mirror offset\", \"repair trap\", \"combined fault\", \"control\", \"control\", \"boundary\", \"boundary\", \"control\"]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (labels[i % len(labels)], i), solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"e7a9836e06d2b18155145d3309aed21eed22c84d1bc46c5768085f3ed497997b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    w, h, tag = x\n    if tag not in (1, 2, 3, 4, 5, 6, 7, 8):\n        tag = 1\n    if tag == 1:\n        mat = [1, 0, 0, 1, 0, 0]\n    elif tag == 2:\n        mat = [-1, 0, 0, 1, w - 1, 0]\n    elif tag == 3:\n        mat = [-1, 0, 0, -1, w, h]\n    elif tag == 4:\n        mat = [1, 0, 0, -1, 0, h]\n    elif tag == 5:\n        mat = [0, 1, 1, 0, 0, 0]\n    elif tag == 6:\n        mat = [0, 1, -1, 0, h, 0]\n    elif tag == 7:\n        mat = [0, -1, -1, 0, h, w]\n    else:\n        mat = [0, -1, 1, 0, 0, w]\n    canvas = [h, w] if tag >= 5 else [w, h]\n    return {'canvas': canvas, 'matrix': mat}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[4000, 3784, 2], {'canvas': [4000, 3784], 'matrix': [-1, 0, 0, 1, 4000, 0]}], [[1227, 335, 2], {'canvas': [1227, 335], 'matrix': [-1, 0, 0, 1, 1227, 0]}], [[3307, 2787, 3], {'canvas': [3307, 2787], 'matrix': [-1, 0, 0, -1, 3307, 2787]}], [[2954, 1709, 1], {'canvas': [2954, 1709], 'matrix': [1, 0, 0, 1, 0, 0]}], [[58, 1879, 3], {'canvas': [58, 1879], 'matrix': [-1, 0, 0, -1, 58, 1879]}], [[2834, 740, 9], {'canvas': [2834, 740], 'matrix': [1, 0, 0, 1, 0, 0]}], [[1990, 1071, 4], {'canvas': [1990, 1071], 'matrix': [1, 0, 0, -1, 0, 1071]}], [[1499, 3901, 2], {'canvas': [1499, 3901], 'matrix': [-1, 0, 0, 1, 1499, 0]}]], [[[3502, 833, 2], {'canvas': [3502, 833], 'matrix': [-1, 0, 0, 1, 3502, 0]}], [[1326, 2796, 2], {'canvas': [1326, 2796], 'matrix': [-1, 0, 0, 1, 1326, 0]}], [[2349, 3183, 4], {'canvas': [2349, 3183], 'matrix': [1, 0, 0, -1, 0, 3183]}], [[1404, 638, 8], {'canvas': [638, 1404], 'matrix': [0, -1, 1, 0, 0, 1404]}], [[3672, 2107, 7], {'canvas': [2107, 3672], 'matrix': [0, -1, -1, 0, 2107, 3672]}], [[497, 2889, 6], {'canvas': [2889, 497], 'matrix': [0, 1, -1, 0, 2889, 0]}], [[1679, 3857, 0], {'canvas': [1679, 3857], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2424, 3685, 2], {'canvas': [2424, 3685], 'matrix': [-1, 0, 0, 1, 2424, 0]}]], [[[2623, 3832, 2], {'canvas': [2623, 3832], 'matrix': [-1, 0, 0, 1, 2623, 0]}], [[1805, 2091, 2], {'canvas': [1805, 2091], 'matrix': [-1, 0, 0, 1, 1805, 0]}], [[2580, 3384, 7], {'canvas': [3384, 2580], 'matrix': [0, -1, -1, 0, 3384, 2580]}], [[1742, 3974, 6], {'canvas': [3974, 1742], 'matrix': [0, 1, -1, 0, 3974, 0]}], [[2878, 1614, 0], {'canvas': [2878, 1614], 'matrix': [1, 0, 0, 1, 0, 0]}], [[1553, 978, 5], {'canvas': [978, 1553], 'matrix': [0, 1, 1, 0, 0, 0]}], [[2394, 1311, 0], {'canvas': [2394, 1311], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2824, 877, 2], {'canvas': [2824, 877], 'matrix': [-1, 0, 0, 1, 2824, 0]}]], [[[250, 1651, 2], {'canvas': [250, 1651], 'matrix': [-1, 0, 0, 1, 250, 0]}], [[3998, 2986, 2], {'canvas': [3998, 2986], 'matrix': [-1, 0, 0, 1, 3998, 0]}], [[2618, 2128, 9], {'canvas': [2618, 2128], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2422, 1413, 3], {'canvas': [2422, 1413], 'matrix': [-1, 0, 0, -1, 2422, 1413]}], [[397, 3269, 8], {'canvas': [3269, 397], 'matrix': [0, -1, 1, 0, 0, 397]}], [[3842, 908, 7], {'canvas': [908, 3842], 'matrix': [0, -1, -1, 0, 908, 3842]}], [[1888, 3423, 4], {'canvas': [1888, 3423], 'matrix': [1, 0, 0, -1, 0, 3423]}], [[1474, 1630, 2], {'canvas': [1474, 1630], 'matrix': [-1, 0, 0, 1, 1474, 0]}]], [[[3339, 1148, 2], {'canvas': [3339, 1148], 'matrix': [-1, 0, 0, 1, 3339, 0]}], [[850, 592, 2], {'canvas': [850, 592], 'matrix': [-1, 0, 0, 1, 850, 0]}], [[3653, 369, 3], {'canvas': [3653, 369], 'matrix': [-1, 0, 0, -1, 3653, 369]}], [[663, 894, 6], {'canvas': [894, 663], 'matrix': [0, 1, -1, 0, 894, 0]}], [[439, 1611, 8], {'canvas': [1611, 439], 'matrix': [0, -1, 1, 0, 0, 439]}], [[318, 2513, 3], {'canvas': [318, 2513], 'matrix': [-1, 0, 0, -1, 318, 2513]}], [[2840, 2668, 9], {'canvas': [2840, 2668], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2083, 1309, 2], {'canvas': [2083, 1309], 'matrix': [-1, 0, 0, 1, 2083, 0]}]]]\nlabels = [\"regression: horizontal mirror offset\", \"repair trap\", \"combined fault\", \"control\", \"control\", \"boundary\", \"boundary\", \"control\"]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (labels[i % len(labels)], i), solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"c37ed5f66d0f61fdce59b19029ed53e53930f24e5243f508d90072964abc6d5e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    w, h, tag = x\n    if tag not in (1, 2, 3, 4, 5, 6, 7, 8):\n        tag = 1\n    if tag == 1:\n        mat = [1, 0, 0, 1, 0, 0]\n    elif tag == 2:\n        mat = [-1, 0, 0, 1, w, 0]\n    elif tag == 3:\n        mat = [-1, 0, 0, -1, w, h]\n    elif tag == 4:\n        mat = [1, 0, 0, -1, 0, h]\n    elif tag == 5:\n        mat = [0, 1, 1, 0, 0, 0]\n    elif tag == 6:\n        mat = [0, 1, -1, 0, h, 0]\n    elif tag == 7:\n        mat = [0, -1, -1, 0, h, w]\n    else:\n        mat = [0, -1, 1, 0, 0, w]\n    canvas = [h, w] if tag >= 5 else [w, h]\n    return {'canvas': canvas, 'matrix': mat}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[4000, 3784, 2], {'canvas': [4000, 3784], 'matrix': [-1, 0, 0, 1, 4000, 0]}], [[1227, 335, 2], {'canvas': [1227, 335], 'matrix': [-1, 0, 0, 1, 1227, 0]}], [[3307, 2787, 3], {'canvas': [3307, 2787], 'matrix': [-1, 0, 0, -1, 3307, 2787]}], [[2954, 1709, 1], {'canvas': [2954, 1709], 'matrix': [1, 0, 0, 1, 0, 0]}], [[58, 1879, 3], {'canvas': [58, 1879], 'matrix': [-1, 0, 0, -1, 58, 1879]}], [[2834, 740, 9], {'canvas': [2834, 740], 'matrix': [1, 0, 0, 1, 0, 0]}], [[1990, 1071, 4], {'canvas': [1990, 1071], 'matrix': [1, 0, 0, -1, 0, 1071]}], [[1499, 3901, 2], {'canvas': [1499, 3901], 'matrix': [-1, 0, 0, 1, 1499, 0]}]], [[[3502, 833, 2], {'canvas': [3502, 833], 'matrix': [-1, 0, 0, 1, 3502, 0]}], [[1326, 2796, 2], {'canvas': [1326, 2796], 'matrix': [-1, 0, 0, 1, 1326, 0]}], [[2349, 3183, 4], {'canvas': [2349, 3183], 'matrix': [1, 0, 0, -1, 0, 3183]}], [[1404, 638, 8], {'canvas': [638, 1404], 'matrix': [0, -1, 1, 0, 0, 1404]}], [[3672, 2107, 7], {'canvas': [2107, 3672], 'matrix': [0, -1, -1, 0, 2107, 3672]}], [[497, 2889, 6], {'canvas': [2889, 497], 'matrix': [0, 1, -1, 0, 2889, 0]}], [[1679, 3857, 0], {'canvas': [1679, 3857], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2424, 3685, 2], {'canvas': [2424, 3685], 'matrix': [-1, 0, 0, 1, 2424, 0]}]], [[[2623, 3832, 2], {'canvas': [2623, 3832], 'matrix': [-1, 0, 0, 1, 2623, 0]}], [[1805, 2091, 2], {'canvas': [1805, 2091], 'matrix': [-1, 0, 0, 1, 1805, 0]}], [[2580, 3384, 7], {'canvas': [3384, 2580], 'matrix': [0, -1, -1, 0, 3384, 2580]}], [[1742, 3974, 6], {'canvas': [3974, 1742], 'matrix': [0, 1, -1, 0, 3974, 0]}], [[2878, 1614, 0], {'canvas': [2878, 1614], 'matrix': [1, 0, 0, 1, 0, 0]}], [[1553, 978, 5], {'canvas': [978, 1553], 'matrix': [0, 1, 1, 0, 0, 0]}], [[2394, 1311, 0], {'canvas': [2394, 1311], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2824, 877, 2], {'canvas': [2824, 877], 'matrix': [-1, 0, 0, 1, 2824, 0]}]], [[[250, 1651, 2], {'canvas': [250, 1651], 'matrix': [-1, 0, 0, 1, 250, 0]}], [[3998, 2986, 2], {'canvas': [3998, 2986], 'matrix': [-1, 0, 0, 1, 3998, 0]}], [[2618, 2128, 9], {'canvas': [2618, 2128], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2422, 1413, 3], {'canvas': [2422, 1413], 'matrix': [-1, 0, 0, -1, 2422, 1413]}], [[397, 3269, 8], {'canvas': [3269, 397], 'matrix': [0, -1, 1, 0, 0, 397]}], [[3842, 908, 7], {'canvas': [908, 3842], 'matrix': [0, -1, -1, 0, 908, 3842]}], [[1888, 3423, 4], {'canvas': [1888, 3423], 'matrix': [1, 0, 0, -1, 0, 3423]}], [[1474, 1630, 2], {'canvas': [1474, 1630], 'matrix': [-1, 0, 0, 1, 1474, 0]}]], [[[3339, 1148, 2], {'canvas': [3339, 1148], 'matrix': [-1, 0, 0, 1, 3339, 0]}], [[850, 592, 2], {'canvas': [850, 592], 'matrix': [-1, 0, 0, 1, 850, 0]}], [[3653, 369, 3], {'canvas': [3653, 369], 'matrix': [-1, 0, 0, -1, 3653, 369]}], [[663, 894, 6], {'canvas': [894, 663], 'matrix': [0, 1, -1, 0, 894, 0]}], [[439, 1611, 8], {'canvas': [1611, 439], 'matrix': [0, -1, 1, 0, 0, 439]}], [[318, 2513, 3], {'canvas': [318, 2513], 'matrix': [-1, 0, 0, -1, 318, 2513]}], [[2840, 2668, 9], {'canvas': [2840, 2668], 'matrix': [1, 0, 0, 1, 0, 0]}], [[2083, 1309, 2], {'canvas': [2083, 1309], 'matrix': [-1, 0, 0, 1, 2083, 0]}]]]\nlabels = [\"regression: horizontal mirror offset\", \"repair trap\", \"combined fault\", \"control\", \"control\", \"boundary\", \"boundary\", \"control\"]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"%s %d\" % (labels[i % len(labels)], i), solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model with a stipulated contract; it makes no claim of conformance to any published specification. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-image-orientation-metadata-canvas-set-transform-mirror-offset","generated_at":"2026-09-29T14:49:42.188780+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Camera, phone and scanner images carry an orientation hint separately from the stored pixels; galleries, thumbnailers, editors and upload pipelines must interpret it consistently or photos appear sideways, mirrored or doubly rotated.","repair":"Translate by the full width w.","root_cause":"The mirror translation uses w - 1 (index arithmetic) in continuous canvas space.","sha256":"d660899ac16c5e312433a8bd933619d350cb92bf59a4bf1f8ae5dbde902cb1d0","title":"Canvas mirror uses the pixel-index offset · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.881,"exit_code":1,"observations":[{"actual":{"canvas":[4000,3784],"matrix":[-1,0,0,1,-4000,0]},"check":"regression: horizontal mirror offset 0","expected":{"canvas":[4000,3784],"matrix":[-1,0,0,1,4000,0]},"passed":false},{"actual":{"canvas":[1227,335],"matrix":[-1,0,0,1,-1227,0]},"check":"repair trap 1","expected":{"canvas":[1227,335],"matrix":[-1,0,0,1,1227,0]},"passed":false},{"actual":{"canvas":[3307,2787],"matrix":[-1,0,0,-1,3307,2787]},"check":"combined fault 2","expected":{"canvas":[3307,2787],"matrix":[-1,0,0,-1,3307,2787]},"passed":true},{"actual":{"canvas":[2954,1709],"matrix":[1,0,0,1,0,0]},"check":"control 3","expected":{"canvas":[2954,1709],"matrix":[1,0,0,1,0,0]},"passed":true},{"actual":{"canvas":[58,1879],"matrix":[-1,0,0,-1,58,1879]},"check":"control 4","expected":{"canvas":[58,1879],"matrix":[-1,0,0,-1,58,1879]},"passed":true},{"actual":{"canvas":[2834,740],"matrix":[1,0,0,1,0,0]},"check":"boundary 5","expected":{"canvas":[2834,740],"matrix":[1,0,0,1,0,0]},"passed":true},{"actual":{"canvas":[1990,1071],"matrix":[1,0,0,-1,0,1071]},"check":"boundary 6","expected":{"canvas":[1990,1071],"matrix":[1,0,0,-1,0,1071]},"passed":true},{"actual":{"canvas":[1499,3901],"matrix":[-1,0,0,1,-1499,0]},"check":"control 7","expected":{"canvas":[1499,3901],"matrix":[-1,0,0,1,1499,0]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: horizontal mirror offset 0\", \"actual\": {\"canvas\": [4000, 3784], \"matrix\": [-1, 0, 0, 1, -4000, 0]}, \"expected\": {\"canvas\": [4000, 3784], \"matrix\": [-1, 0, 0, 1, 4000, 0]}, \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": {\"canvas\": [1227, 335], \"matrix\": [-1, 0, 0, 1, -1227, 0]}, \"expected\": {\"canvas\": [1227, 335], \"matrix\": [-1, 0, 0, 1, 1227, 0]}, \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": {\"canvas\": [3307, 2787], \"matrix\": [-1, 0, 0, -1, 3307, 2787]}, \"expected\": {\"canvas\": [3307, 2787], \"matrix\": [-1, 0, 0, -1, 3307, 2787]}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"canvas\": [2954, 1709], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"expected\": {\"canvas\": [2954, 1709], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"canvas\": [58, 1879], \"matrix\": [-1, 0, 0, -1, 58, 1879]}, \"expected\": {\"canvas\": [58, 1879], \"matrix\": [-1, 0, 0, -1, 58, 1879]}, \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": {\"canvas\": [2834, 740], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"expected\": {\"canvas\": [2834, 740], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": {\"canvas\": [1990, 1071], \"matrix\": [1, 0, 0, -1, 0, 1071]}, \"expected\": {\"canvas\": [1990, 1071], \"matrix\": [1, 0, 0, -1, 0, 1071]}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"canvas\": [1499, 3901], \"matrix\": [-1, 0, 0, 1, -1499, 0]}, \"expected\": {\"canvas\": [1499, 3901], \"matrix\": [-1, 0, 0, 1, 1499, 0]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.096,"exit_code":1,"observations":[{"actual":{"canvas":[4000,3784],"matrix":[-1,0,0,1,3999,0]},"check":"regression: horizontal mirror offset 0","expected":{"canvas":[4000,3784],"matrix":[-1,0,0,1,4000,0]},"passed":false},{"actual":{"canvas":[1227,335],"matrix":[-1,0,0,1,1226,0]},"check":"repair trap 1","expected":{"canvas":[1227,335],"matrix":[-1,0,0,1,1227,0]},"passed":false},{"actual":{"canvas":[3307,2787],"matrix":[-1,0,0,-1,3307,2787]},"check":"combined fault 2","expected":{"canvas":[3307,2787],"matrix":[-1,0,0,-1,3307,2787]},"passed":true},{"actual":{"canvas":[2954,1709],"matrix":[1,0,0,1,0,0]},"check":"control 3","expected":{"canvas":[2954,1709],"matrix":[1,0,0,1,0,0]},"passed":true},{"actual":{"canvas":[58,1879],"matrix":[-1,0,0,-1,58,1879]},"check":"control 4","expected":{"canvas":[58,1879],"matrix":[-1,0,0,-1,58,1879]},"passed":true},{"actual":{"canvas":[2834,740],"matrix":[1,0,0,1,0,0]},"check":"boundary 5","expected":{"canvas":[2834,740],"matrix":[1,0,0,1,0,0]},"passed":true},{"actual":{"canvas":[1990,1071],"matrix":[1,0,0,-1,0,1071]},"check":"boundary 6","expected":{"canvas":[1990,1071],"matrix":[1,0,0,-1,0,1071]},"passed":true},{"actual":{"canvas":[1499,3901],"matrix":[-1,0,0,1,1498,0]},"check":"control 7","expected":{"canvas":[1499,3901],"matrix":[-1,0,0,1,1499,0]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: horizontal mirror offset 0\", \"actual\": {\"canvas\": [4000, 3784], \"matrix\": [-1, 0, 0, 1, 3999, 0]}, \"expected\": {\"canvas\": [4000, 3784], \"matrix\": [-1, 0, 0, 1, 4000, 0]}, \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": {\"canvas\": [1227, 335], \"matrix\": [-1, 0, 0, 1, 1226, 0]}, \"expected\": {\"canvas\": [1227, 335], \"matrix\": [-1, 0, 0, 1, 1227, 0]}, \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": {\"canvas\": [3307, 2787], \"matrix\": [-1, 0, 0, -1, 3307, 2787]}, \"expected\": {\"canvas\": [3307, 2787], \"matrix\": [-1, 0, 0, -1, 3307, 2787]}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"canvas\": [2954, 1709], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"expected\": {\"canvas\": [2954, 1709], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"canvas\": [58, 1879], \"matrix\": [-1, 0, 0, -1, 58, 1879]}, \"expected\": {\"canvas\": [58, 1879], \"matrix\": [-1, 0, 0, -1, 58, 1879]}, \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": {\"canvas\": [2834, 740], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"expected\": {\"canvas\": [2834, 740], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": {\"canvas\": [1990, 1071], \"matrix\": [1, 0, 0, -1, 0, 1071]}, \"expected\": {\"canvas\": [1990, 1071], \"matrix\": [1, 0, 0, -1, 0, 1071]}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"canvas\": [1499, 3901], \"matrix\": [-1, 0, 0, 1, 1498, 0]}, \"expected\": {\"canvas\": [1499, 3901], \"matrix\": [-1, 0, 0, 1, 1499, 0]}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.404,"exit_code":0,"observations":[{"actual":{"canvas":[4000,3784],"matrix":[-1,0,0,1,4000,0]},"check":"regression: horizontal mirror offset 0","expected":{"canvas":[4000,3784],"matrix":[-1,0,0,1,4000,0]},"passed":true},{"actual":{"canvas":[1227,335],"matrix":[-1,0,0,1,1227,0]},"check":"repair trap 1","expected":{"canvas":[1227,335],"matrix":[-1,0,0,1,1227,0]},"passed":true},{"actual":{"canvas":[3307,2787],"matrix":[-1,0,0,-1,3307,2787]},"check":"combined fault 2","expected":{"canvas":[3307,2787],"matrix":[-1,0,0,-1,3307,2787]},"passed":true},{"actual":{"canvas":[2954,1709],"matrix":[1,0,0,1,0,0]},"check":"control 3","expected":{"canvas":[2954,1709],"matrix":[1,0,0,1,0,0]},"passed":true},{"actual":{"canvas":[58,1879],"matrix":[-1,0,0,-1,58,1879]},"check":"control 4","expected":{"canvas":[58,1879],"matrix":[-1,0,0,-1,58,1879]},"passed":true},{"actual":{"canvas":[2834,740],"matrix":[1,0,0,1,0,0]},"check":"boundary 5","expected":{"canvas":[2834,740],"matrix":[1,0,0,1,0,0]},"passed":true},{"actual":{"canvas":[1990,1071],"matrix":[1,0,0,-1,0,1071]},"check":"boundary 6","expected":{"canvas":[1990,1071],"matrix":[1,0,0,-1,0,1071]},"passed":true},{"actual":{"canvas":[1499,3901],"matrix":[-1,0,0,1,1499,0]},"check":"control 7","expected":{"canvas":[1499,3901],"matrix":[-1,0,0,1,1499,0]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: horizontal mirror offset 0\", \"actual\": {\"canvas\": [4000, 3784], \"matrix\": [-1, 0, 0, 1, 4000, 0]}, \"expected\": {\"canvas\": [4000, 3784], \"matrix\": [-1, 0, 0, 1, 4000, 0]}, \"passed\": true}, {\"check\": \"repair trap 1\", \"actual\": {\"canvas\": [1227, 335], \"matrix\": [-1, 0, 0, 1, 1227, 0]}, \"expected\": {\"canvas\": [1227, 335], \"matrix\": [-1, 0, 0, 1, 1227, 0]}, \"passed\": true}, {\"check\": \"combined fault 2\", \"actual\": {\"canvas\": [3307, 2787], \"matrix\": [-1, 0, 0, -1, 3307, 2787]}, \"expected\": {\"canvas\": [3307, 2787], \"matrix\": [-1, 0, 0, -1, 3307, 2787]}, \"passed\": true}, {\"check\": \"control 3\", \"actual\": {\"canvas\": [2954, 1709], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"expected\": {\"canvas\": [2954, 1709], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"passed\": true}, {\"check\": \"control 4\", \"actual\": {\"canvas\": [58, 1879], \"matrix\": [-1, 0, 0, -1, 58, 1879]}, \"expected\": {\"canvas\": [58, 1879], \"matrix\": [-1, 0, 0, -1, 58, 1879]}, \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": {\"canvas\": [2834, 740], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"expected\": {\"canvas\": [2834, 740], \"matrix\": [1, 0, 0, 1, 0, 0]}, \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": {\"canvas\": [1990, 1071], \"matrix\": [1, 0, 0, -1, 0, 1071]}, \"expected\": {\"canvas\": [1990, 1071], \"matrix\": [1, 0, 0, -1, 0, 1071]}, \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"canvas\": [1499, 3901], \"matrix\": [-1, 0, 0, 1, 1499, 0]}, \"expected\": {\"canvas\": [1499, 3901], \"matrix\": [-1, 0, 0, 1, 1499, 0]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}