{"abstract":"Rotated fax and scanner images with different X and Y resolutions print with the wrong physical size.","category":"Image orientation metadata","checks":8,"contract":"Input {w, h, tag?, unit?, xres: [num, den], yres?: [num, den]}. ResolutionUnit 2 is inches (25.4 mm), 3 is centimetres (10 mm), a missing unit defaults to 2 and any other unit has no physical size (None). A missing yres equals xres; non-positive rational parts give None. For tags 5..8 the displayed width comes from the stored height at YResolution. Return displayed [width, height] in tenths of a millimetre, each rounded half up from the exact value.","evaluation_group":"w2-image-orientation-metadata-print-physical-size","failed_approach":"Exchanging only the resolutions pairs each axis with the wrong pixel count.","family":"w2-image-orientation-metadata-print-physical-size-resolution-follows-axis","id":"FA-79201","implementations":{"attempt":{"sha256":"230725ec0ceb65586f1e2b76661cff9fabb27f6b7a31505856fe146002a49f99","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(d):\n    w, h = d['w'], d['h']\n    tag = d.get('tag', 1)\n    unit = d.get('unit', 2)\n    per = {2: Fraction(254, 10), 3: Fraction(10)}.get(unit)\n    if per is None:\n        return None\n    xn, xd = d['xres']\n    yn, yd = d.get('yres', d['xres'])\n    if xn <= 0 or xd <= 0 or yn <= 0 or yd <= 0:\n        return None\n    xr = Fraction(xn, xd)\n    yr = Fraction(yn, yd)\n    if tag in (5, 6, 7, 8):\n        xr, yr = yr, xr\n    def tenths(px, r):\n        return math.floor(px * per * 10 / r + Fraction(1, 2))\n    return [tenths(w, xr), tenths(h, yr)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[{'w': 2676, 'h': 1814, 'tag': 6, 'unit': 3, 'xres': [300, 1], 'yres': [600, 1]}, [302, 892]], [{'w': 2250, 'h': 3721, 'tag': 6, 'xres': [300, 1]}, [3150, 1905]], [{'w': 1712, 'h': 2976, 'tag': 8, 'unit': 3, 'xres': [1000, 3], 'yres': [96, 1]}, [3100, 514]], [{'w': 2577, 'h': 2775, 'tag': 6, 'xres': [0, 1]}, None], [{'w': 2042, 'h': 678, 'unit': 3, 'xres': [150, 2]}, [2723, 904]], [{'w': 3491, 'h': 649, 'xres': [40, 1], 'yres': [1000, 3]}, [22168, 495]], [{'w': 1972, 'h': 432, 'unit': 3, 'xres': [72, 1], 'yres': [40, 1]}, [2739, 1080]], [{'w': 742, 'h': 2190, 'tag': 8, 'xres': [1000, 3], 'yres': [600, 1]}, [927, 565]]], [[{'w': 3266, 'h': 1419, 'tag': 5, 'unit': 3, 'xres': [300, 1], 'yres': [1000, 3]}, [426, 1089]], [{'w': 1140, 'h': 2204, 'tag': 5, 'unit': 3, 'xres': [40, 1], 'yres': [96, 1]}, [2296, 2850]], [{'w': 3677, 'h': 3545, 'tag': 6, 'unit': 3, 'xres': [1000, 3], 'yres': [40, 1]}, [8863, 1103]], [{'w': 553, 'h': 1044, 'tag': 8, 'unit': 2, 'xres': [200, 3], 'yres': [-300, 1]}, None], [{'w': 2636, 'h': 3063, 'unit': 3, 'xres': [200, 3], 'yres': [300, 1]}, [3954, 1021]], [{'w': 3188, 'h': 3159, 'tag': 1, 'unit': 2, 'xres': [1000, 3]}, [2429, 2407]], [{'w': 2562, 'h': 960, 'tag': 3, 'unit': 3, 'xres': [-72, 1], 'yres': [40, 1]}, None], [{'w': 278, 'h': 1200, 'tag': 8, 'unit': 2, 'xres': [96, 1], 'yres': [1000, 3]}, [914, 736]]], [[{'w': 2032, 'h': 1531, 'tag': 8, 'xres': [72, 1], 'yres': [300, 1]}, [1296, 7168]], [{'w': 2151, 'h': 2111, 'tag': 5, 'unit': 2, 'xres': [7200, 100]}, [7447, 7588]], [{'w': 2302, 'h': 1042, 'tag': 7, 'unit': 2, 'xres': [40, 1], 'yres': [1000, 3]}, [794, 14618]], [{'w': 2, 'h': 3716, 'unit': 2, 'xres': [300, 1]}, [2, 3146]], [{'w': 724, 'h': 1179, 'unit': 2, 'xres': [40, 1], 'yres': [-300, 1]}, None], [{'w': 3374, 'h': 1982, 'tag': 3, 'xres': [300, 1], 'yres': [1000, 3]}, [2857, 1510]], [{'w': 3633, 'h': 2881, 'xres': [-72, 1]}, None], [{'w': 3823, 'h': 2286, 'tag': 8, 'unit': 3, 'xres': [150, 2], 'yres': [1000, 3]}, [686, 5097]]], [[{'w': 1216, 'h': 3589, 'tag': 7, 'unit': 2, 'xres': [1000, 3], 'yres': [72, 1]}, [12661, 927]], [{'w': 47, 'h': 947, 'tag': 8, 'unit': 2, 'xres': [7200, 100]}, [3341, 166]], [{'w': 2131, 'h': 799, 'tag': 7, 'unit': 2, 'xres': [200, 3], 'yres': [40, 1]}, [5074, 8119]], [{'w': 1, 'h': 3356, 'tag': 7, 'xres': [-72, 1], 'yres': [96, 1]}, None], [{'w': 776, 'h': 1736, 'tag': 1, 'unit': 3, 'xres': [96, 1]}, [808, 1808]], [{'w': 2768, 'h': 3254, 'tag': 1, 'unit': 3, 'xres': [300, 1]}, [923, 1085]], [{'w': 3043, 'h': 1338, 'tag': 8, 'unit': 1, 'xres': [200, 3], 'yres': [72, 1]}, None], [{'w': 3732, 'h': 1632, 'tag': 6, 'unit': 3, 'xres': [150, 2], 'yres': [72, 1]}, [2267, 4976]]], [[{'w': 3766, 'h': 3194, 'tag': 8, 'xres': [150, 2], 'yres': [300, 1]}, [2704, 12754]], [{'w': 901, 'h': 2455, 'tag': 6, 'unit': 3, 'xres': [7200, 100], 'yres': [600, 1]}, [409, 1251]], [{'w': 1526, 'h': 1428, 'tag': 5, 'unit': 3, 'xres': [72, 1], 'yres': [600, 1]}, [238, 2119]], [{'w': 2271, 'h': 2906, 'tag': 1, 'unit': 3, 'xres': [72, 1]}, [3154, 4036]], [{'w': 3285, 'h': 917, 'tag': 3, 'unit': 3, 'xres': [300, 1], 'yres': [72, 1]}, [1095, 1274]], [{'w': 690, 'h': 269, 'xres': [40, 1], 'yres': [72, 1]}, [4382, 949]], [{'w': 2070, 'h': 2469, 'tag': 1, 'unit': 3, 'xres': [0, 1], 'yres': [-300, 1]}, None], [{'w': 3018, 'h': 798, 'tag': 8, 'xres': [7200, 100], 'yres': [600, 1]}, [338, 10647]]]]\nlabels = [\"regression: resolution swap with dimensions\", \"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":"82e960434964dcbf15e9661bf8c3ceb77fe09fa8646792a49c0c6554e15366ad","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(d):\n    w, h = d['w'], d['h']\n    tag = d.get('tag', 1)\n    unit = d.get('unit', 2)\n    per = {2: Fraction(254, 10), 3: Fraction(10)}.get(unit)\n    if per is None:\n        return None\n    xn, xd = d['xres']\n    yn, yd = d.get('yres', d['xres'])\n    if xn <= 0 or xd <= 0 or yn <= 0 or yd <= 0:\n        return None\n    xr = Fraction(xn, xd)\n    yr = Fraction(yn, yd)\n    if tag in (5, 6, 7, 8):\n        w, h = h, w\n    def tenths(px, r):\n        return math.floor(px * per * 10 / r + Fraction(1, 2))\n    return [tenths(w, xr), tenths(h, yr)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[{'w': 2676, 'h': 1814, 'tag': 6, 'unit': 3, 'xres': [300, 1], 'yres': [600, 1]}, [302, 892]], [{'w': 2250, 'h': 3721, 'tag': 6, 'xres': [300, 1]}, [3150, 1905]], [{'w': 1712, 'h': 2976, 'tag': 8, 'unit': 3, 'xres': [1000, 3], 'yres': [96, 1]}, [3100, 514]], [{'w': 2577, 'h': 2775, 'tag': 6, 'xres': [0, 1]}, None], [{'w': 2042, 'h': 678, 'unit': 3, 'xres': [150, 2]}, [2723, 904]], [{'w': 3491, 'h': 649, 'xres': [40, 1], 'yres': [1000, 3]}, [22168, 495]], [{'w': 1972, 'h': 432, 'unit': 3, 'xres': [72, 1], 'yres': [40, 1]}, [2739, 1080]], [{'w': 742, 'h': 2190, 'tag': 8, 'xres': [1000, 3], 'yres': [600, 1]}, [927, 565]]], [[{'w': 3266, 'h': 1419, 'tag': 5, 'unit': 3, 'xres': [300, 1], 'yres': [1000, 3]}, [426, 1089]], [{'w': 1140, 'h': 2204, 'tag': 5, 'unit': 3, 'xres': [40, 1], 'yres': [96, 1]}, [2296, 2850]], [{'w': 3677, 'h': 3545, 'tag': 6, 'unit': 3, 'xres': [1000, 3], 'yres': [40, 1]}, [8863, 1103]], [{'w': 553, 'h': 1044, 'tag': 8, 'unit': 2, 'xres': [200, 3], 'yres': [-300, 1]}, None], [{'w': 2636, 'h': 3063, 'unit': 3, 'xres': [200, 3], 'yres': [300, 1]}, [3954, 1021]], [{'w': 3188, 'h': 3159, 'tag': 1, 'unit': 2, 'xres': [1000, 3]}, [2429, 2407]], [{'w': 2562, 'h': 960, 'tag': 3, 'unit': 3, 'xres': [-72, 1], 'yres': [40, 1]}, None], [{'w': 278, 'h': 1200, 'tag': 8, 'unit': 2, 'xres': [96, 1], 'yres': [1000, 3]}, [914, 736]]], [[{'w': 2032, 'h': 1531, 'tag': 8, 'xres': [72, 1], 'yres': [300, 1]}, [1296, 7168]], [{'w': 2151, 'h': 2111, 'tag': 5, 'unit': 2, 'xres': [7200, 100]}, [7447, 7588]], [{'w': 2302, 'h': 1042, 'tag': 7, 'unit': 2, 'xres': [40, 1], 'yres': [1000, 3]}, [794, 14618]], [{'w': 2, 'h': 3716, 'unit': 2, 'xres': [300, 1]}, [2, 3146]], [{'w': 724, 'h': 1179, 'unit': 2, 'xres': [40, 1], 'yres': [-300, 1]}, None], [{'w': 3374, 'h': 1982, 'tag': 3, 'xres': [300, 1], 'yres': [1000, 3]}, [2857, 1510]], [{'w': 3633, 'h': 2881, 'xres': [-72, 1]}, None], [{'w': 3823, 'h': 2286, 'tag': 8, 'unit': 3, 'xres': [150, 2], 'yres': [1000, 3]}, [686, 5097]]], [[{'w': 1216, 'h': 3589, 'tag': 7, 'unit': 2, 'xres': [1000, 3], 'yres': [72, 1]}, [12661, 927]], [{'w': 47, 'h': 947, 'tag': 8, 'unit': 2, 'xres': [7200, 100]}, [3341, 166]], [{'w': 2131, 'h': 799, 'tag': 7, 'unit': 2, 'xres': [200, 3], 'yres': [40, 1]}, [5074, 8119]], [{'w': 1, 'h': 3356, 'tag': 7, 'xres': [-72, 1], 'yres': [96, 1]}, None], [{'w': 776, 'h': 1736, 'tag': 1, 'unit': 3, 'xres': [96, 1]}, [808, 1808]], [{'w': 2768, 'h': 3254, 'tag': 1, 'unit': 3, 'xres': [300, 1]}, [923, 1085]], [{'w': 3043, 'h': 1338, 'tag': 8, 'unit': 1, 'xres': [200, 3], 'yres': [72, 1]}, None], [{'w': 3732, 'h': 1632, 'tag': 6, 'unit': 3, 'xres': [150, 2], 'yres': [72, 1]}, [2267, 4976]]], [[{'w': 3766, 'h': 3194, 'tag': 8, 'xres': [150, 2], 'yres': [300, 1]}, [2704, 12754]], [{'w': 901, 'h': 2455, 'tag': 6, 'unit': 3, 'xres': [7200, 100], 'yres': [600, 1]}, [409, 1251]], [{'w': 1526, 'h': 1428, 'tag': 5, 'unit': 3, 'xres': [72, 1], 'yres': [600, 1]}, [238, 2119]], [{'w': 2271, 'h': 2906, 'tag': 1, 'unit': 3, 'xres': [72, 1]}, [3154, 4036]], [{'w': 3285, 'h': 917, 'tag': 3, 'unit': 3, 'xres': [300, 1], 'yres': [72, 1]}, [1095, 1274]], [{'w': 690, 'h': 269, 'xres': [40, 1], 'yres': [72, 1]}, [4382, 949]], [{'w': 2070, 'h': 2469, 'tag': 1, 'unit': 3, 'xres': [0, 1], 'yres': [-300, 1]}, None], [{'w': 3018, 'h': 798, 'tag': 8, 'xres': [7200, 100], 'yres': [600, 1]}, [338, 10647]]]]\nlabels = [\"regression: resolution swap with dimensions\", \"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":"783c4714a02d667f2c0e7f2918a577bb188d8290eff04de4471f4ddc3f6556db","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(d):\n    w, h = d['w'], d['h']\n    tag = d.get('tag', 1)\n    unit = d.get('unit', 2)\n    per = {2: Fraction(254, 10), 3: Fraction(10)}.get(unit)\n    if per is None:\n        return None\n    xn, xd = d['xres']\n    yn, yd = d.get('yres', d['xres'])\n    if xn <= 0 or xd <= 0 or yn <= 0 or yd <= 0:\n        return None\n    xr = Fraction(xn, xd)\n    yr = Fraction(yn, yd)\n    if tag in (5, 6, 7, 8):\n        w, h, xr, yr = h, w, yr, xr\n    def tenths(px, r):\n        return math.floor(px * per * 10 / r + Fraction(1, 2))\n    return [tenths(w, xr), tenths(h, yr)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[{'w': 2676, 'h': 1814, 'tag': 6, 'unit': 3, 'xres': [300, 1], 'yres': [600, 1]}, [302, 892]], [{'w': 2250, 'h': 3721, 'tag': 6, 'xres': [300, 1]}, [3150, 1905]], [{'w': 1712, 'h': 2976, 'tag': 8, 'unit': 3, 'xres': [1000, 3], 'yres': [96, 1]}, [3100, 514]], [{'w': 2577, 'h': 2775, 'tag': 6, 'xres': [0, 1]}, None], [{'w': 2042, 'h': 678, 'unit': 3, 'xres': [150, 2]}, [2723, 904]], [{'w': 3491, 'h': 649, 'xres': [40, 1], 'yres': [1000, 3]}, [22168, 495]], [{'w': 1972, 'h': 432, 'unit': 3, 'xres': [72, 1], 'yres': [40, 1]}, [2739, 1080]], [{'w': 742, 'h': 2190, 'tag': 8, 'xres': [1000, 3], 'yres': [600, 1]}, [927, 565]]], [[{'w': 3266, 'h': 1419, 'tag': 5, 'unit': 3, 'xres': [300, 1], 'yres': [1000, 3]}, [426, 1089]], [{'w': 1140, 'h': 2204, 'tag': 5, 'unit': 3, 'xres': [40, 1], 'yres': [96, 1]}, [2296, 2850]], [{'w': 3677, 'h': 3545, 'tag': 6, 'unit': 3, 'xres': [1000, 3], 'yres': [40, 1]}, [8863, 1103]], [{'w': 553, 'h': 1044, 'tag': 8, 'unit': 2, 'xres': [200, 3], 'yres': [-300, 1]}, None], [{'w': 2636, 'h': 3063, 'unit': 3, 'xres': [200, 3], 'yres': [300, 1]}, [3954, 1021]], [{'w': 3188, 'h': 3159, 'tag': 1, 'unit': 2, 'xres': [1000, 3]}, [2429, 2407]], [{'w': 2562, 'h': 960, 'tag': 3, 'unit': 3, 'xres': [-72, 1], 'yres': [40, 1]}, None], [{'w': 278, 'h': 1200, 'tag': 8, 'unit': 2, 'xres': [96, 1], 'yres': [1000, 3]}, [914, 736]]], [[{'w': 2032, 'h': 1531, 'tag': 8, 'xres': [72, 1], 'yres': [300, 1]}, [1296, 7168]], [{'w': 2151, 'h': 2111, 'tag': 5, 'unit': 2, 'xres': [7200, 100]}, [7447, 7588]], [{'w': 2302, 'h': 1042, 'tag': 7, 'unit': 2, 'xres': [40, 1], 'yres': [1000, 3]}, [794, 14618]], [{'w': 2, 'h': 3716, 'unit': 2, 'xres': [300, 1]}, [2, 3146]], [{'w': 724, 'h': 1179, 'unit': 2, 'xres': [40, 1], 'yres': [-300, 1]}, None], [{'w': 3374, 'h': 1982, 'tag': 3, 'xres': [300, 1], 'yres': [1000, 3]}, [2857, 1510]], [{'w': 3633, 'h': 2881, 'xres': [-72, 1]}, None], [{'w': 3823, 'h': 2286, 'tag': 8, 'unit': 3, 'xres': [150, 2], 'yres': [1000, 3]}, [686, 5097]]], [[{'w': 1216, 'h': 3589, 'tag': 7, 'unit': 2, 'xres': [1000, 3], 'yres': [72, 1]}, [12661, 927]], [{'w': 47, 'h': 947, 'tag': 8, 'unit': 2, 'xres': [7200, 100]}, [3341, 166]], [{'w': 2131, 'h': 799, 'tag': 7, 'unit': 2, 'xres': [200, 3], 'yres': [40, 1]}, [5074, 8119]], [{'w': 1, 'h': 3356, 'tag': 7, 'xres': [-72, 1], 'yres': [96, 1]}, None], [{'w': 776, 'h': 1736, 'tag': 1, 'unit': 3, 'xres': [96, 1]}, [808, 1808]], [{'w': 2768, 'h': 3254, 'tag': 1, 'unit': 3, 'xres': [300, 1]}, [923, 1085]], [{'w': 3043, 'h': 1338, 'tag': 8, 'unit': 1, 'xres': [200, 3], 'yres': [72, 1]}, None], [{'w': 3732, 'h': 1632, 'tag': 6, 'unit': 3, 'xres': [150, 2], 'yres': [72, 1]}, [2267, 4976]]], [[{'w': 3766, 'h': 3194, 'tag': 8, 'xres': [150, 2], 'yres': [300, 1]}, [2704, 12754]], [{'w': 901, 'h': 2455, 'tag': 6, 'unit': 3, 'xres': [7200, 100], 'yres': [600, 1]}, [409, 1251]], [{'w': 1526, 'h': 1428, 'tag': 5, 'unit': 3, 'xres': [72, 1], 'yres': [600, 1]}, [238, 2119]], [{'w': 2271, 'h': 2906, 'tag': 1, 'unit': 3, 'xres': [72, 1]}, [3154, 4036]], [{'w': 3285, 'h': 917, 'tag': 3, 'unit': 3, 'xres': [300, 1], 'yres': [72, 1]}, [1095, 1274]], [{'w': 690, 'h': 269, 'xres': [40, 1], 'yres': [72, 1]}, [4382, 949]], [{'w': 2070, 'h': 2469, 'tag': 1, 'unit': 3, 'xres': [0, 1], 'yres': [-300, 1]}, None], [{'w': 3018, 'h': 798, 'tag': 8, 'xres': [7200, 100], 'yres': [600, 1]}, [338, 10647]]]]\nlabels = [\"regression: resolution swap with dimensions\", \"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-print-physical-size-resolution-follows-axis","generated_at":"2026-09-29T14:49:42.414540+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":"Exchange the resolutions together with the pixel dimensions.","root_cause":"Only the pixel counts are exchanged, so the displayed width is divided by the resolution of the other axis.","sha256":"3a21f074797187d7a27c052d4ec0eadbb3f7b19fbd04cf2d3d3e6f278bb586b6","title":"Print size swaps pixel dimensions but not their resolutions · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.825,"exit_code":1,"observations":[{"actual":[446,605],"check":"regression: resolution swap with dimensions 0","expected":[302,892],"passed":false},{"actual":[1905,3150],"check":"repair trap 1","expected":[3150,1905],"passed":false},{"actual":[1783,893],"check":"combined fault 2","expected":[3100,514],"passed":false},{"actual":null,"check":"control 3","expected":null,"passed":true},{"actual":[2723,904],"check":"control 4","expected":[2723,904],"passed":true},{"actual":[22168,495],"check":"boundary 5","expected":[22168,495],"passed":true},{"actual":[2739,1080],"check":"boundary 6","expected":[2739,1080],"passed":true},{"actual":[314,1669],"check":"control 7","expected":[927,565],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: resolution swap with dimensions 0\", \"actual\": [446, 605], \"expected\": [302, 892], \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": [1905, 3150], \"expected\": [3150, 1905], \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": [1783, 893], \"expected\": [3100, 514], \"passed\": false}, {\"check\": \"control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 4\", \"actual\": [2723, 904], \"expected\": [2723, 904], \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": [22168, 495], \"expected\": [22168, 495], \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [2739, 1080], \"expected\": [2739, 1080], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [314, 1669], \"expected\": [927, 565], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.169,"exit_code":1,"observations":[{"actual":[605,446],"check":"regression: resolution swap with dimensions 0","expected":[302,892],"passed":false},{"actual":[3150,1905],"check":"repair trap 1","expected":[3150,1905],"passed":true},{"actual":[893,1783],"check":"combined fault 2","expected":[3100,514],"passed":false},{"actual":null,"check":"control 3","expected":null,"passed":true},{"actual":[2723,904],"check":"control 4","expected":[2723,904],"passed":true},{"actual":[22168,495],"check":"boundary 5","expected":[22168,495],"passed":true},{"actual":[2739,1080],"check":"boundary 6","expected":[2739,1080],"passed":true},{"actual":[1669,314],"check":"control 7","expected":[927,565],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: resolution swap with dimensions 0\", \"actual\": [605, 446], \"expected\": [302, 892], \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": [3150, 1905], \"expected\": [3150, 1905], \"passed\": true}, {\"check\": \"combined fault 2\", \"actual\": [893, 1783], \"expected\": [3100, 514], \"passed\": false}, {\"check\": \"control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 4\", \"actual\": [2723, 904], \"expected\": [2723, 904], \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": [22168, 495], \"expected\": [22168, 495], \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [2739, 1080], \"expected\": [2739, 1080], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [1669, 314], \"expected\": [927, 565], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.567,"exit_code":0,"observations":[{"actual":[302,892],"check":"regression: resolution swap with dimensions 0","expected":[302,892],"passed":true},{"actual":[3150,1905],"check":"repair trap 1","expected":[3150,1905],"passed":true},{"actual":[3100,514],"check":"combined fault 2","expected":[3100,514],"passed":true},{"actual":null,"check":"control 3","expected":null,"passed":true},{"actual":[2723,904],"check":"control 4","expected":[2723,904],"passed":true},{"actual":[22168,495],"check":"boundary 5","expected":[22168,495],"passed":true},{"actual":[2739,1080],"check":"boundary 6","expected":[2739,1080],"passed":true},{"actual":[927,565],"check":"control 7","expected":[927,565],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: resolution swap with dimensions 0\", \"actual\": [302, 892], \"expected\": [302, 892], \"passed\": true}, {\"check\": \"repair trap 1\", \"actual\": [3150, 1905], \"expected\": [3150, 1905], \"passed\": true}, {\"check\": \"combined fault 2\", \"actual\": [3100, 514], \"expected\": [3100, 514], \"passed\": true}, {\"check\": \"control 3\", \"actual\": null, \"expected\": null, \"passed\": true}, {\"check\": \"control 4\", \"actual\": [2723, 904], \"expected\": [2723, 904], \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": [22168, 495], \"expected\": [22168, 495], \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": [2739, 1080], \"expected\": [2739, 1080], \"passed\": true}, {\"check\": \"control 7\", \"actual\": [927, 565], \"expected\": [927, 565], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}