{"abstract":"Any rotated or mirrored video is reported as unsupported.","category":"Image orientation metadata","checks":8,"contract":"Input [matrix, width, height] where matrix is the [a, b, c, d] part of a track display matrix stored as unsigned 32-bit 16.16 fixed-point words (x' = a*x + c*y, y' = b*x + d*y, screen y down). Only signed permutation matrices of unit entries are supported, otherwise \"unsupported\". A negative determinant means a left-right mirror applied before the rotation; the clockwise rotation is read from the image of the x axis after removing the mirror. Return rotate (0/90/180/270), mirror and the displayed [width, height].","evaluation_group":"w2-image-orientation-metadata-video-display-matrix","failed_approach":"Subtracting 2^16 confuses the fixed-point scale with the word width.","family":"w2-image-orientation-metadata-video-display-matrix-signed-words","id":"FA-79041","implementations":{"attempt":{"sha256":"e8eb7f8b064a39c5604ddf88d5c3b71621eae972cfcfb516cff69d3d95920835","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    m, w, h = x\n    U = 65536\n    m = [v - (1 << 16) if v >= (1 << 31) else v for v in m]\n    a, b, c, d = m\n    if any(v not in (-U, 0, U) for v in m):\n        return 'unsupported'\n    if not ((b == 0 and c == 0 and a != 0 and d != 0) or (a == 0 and d == 0 and b != 0 and c != 0)):\n        return 'unsupported'\n    det = (a * d - b * c) // (U * U)\n    mirror = det == -1\n    if mirror:\n        a, b = -a, -b\n    deg = {(U, 0): 0, (0, U): 90, (-U, 0): 180, (0, -U): 270}[(a, b)]\n    if deg in (90, 270):\n        w, h = h, w\n    return {'rotate': deg, 'mirror': mirror, 'display': [w, h]}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[0, 4294901760, 4294901760, 0], 760, 3281], {'rotate': 90, 'mirror': True, 'display': [3281, 760]}], [[[4294901760, 0, 0, 4294901760], 3685, 2612], {'rotate': 180, 'mirror': False, 'display': [3685, 2612]}], [[[4294901760, 0, 65536, 4294901760], 3830, 2696], 'unsupported'], [[[0, 65536, 4294901760, 65536], 559, 2713], 'unsupported'], [[[0, 65536, 4294901760, 65536], 1463, 780], 'unsupported'], [[[65536, 4294901760, 65536, 65536], 2751, 608], 'unsupported'], [[[0, 0, 4294901760, 0], 1243, 3391], 'unsupported'], [[[4294901760, 0, 0, 4294901760], 2923, 1514], {'rotate': 180, 'mirror': False, 'display': [2923, 1514]}]], [[[[4294901760, 0, 0, 65536], 2552, 3331], {'rotate': 0, 'mirror': True, 'display': [2552, 3331]}], [[[4294901760, 0, 0, 4294901760], 66, 3419], {'rotate': 180, 'mirror': False, 'display': [66, 3419]}], [[[4294901760, 0, 4294901760, 4294901760], 2730, 1220], 'unsupported'], [[[65536, 4294901760, 0, 4294901760], 3622, 60], 'unsupported'], [[[0, 4294901760, 65536, 65536], 1290, 2847], 'unsupported'], [[[65536, 0, 4294901760, 65536], 1369, 1577], 'unsupported'], [[[4294920955, 0, 131072, 65536], 2355, 1488], 'unsupported'], [[[65536, 0, 0, 4294901760], 2680, 1583], {'rotate': 180, 'mirror': True, 'display': [2680, 1583]}]], [[[[4294901760, 0, 0, 65536], 3751, 979], {'rotate': 0, 'mirror': True, 'display': [3751, 979]}], [[[0, 4294901760, 4294901760, 0], 2252, 2590], {'rotate': 90, 'mirror': True, 'display': [2590, 2252]}], [[[4294901760, 0, 65536, 0], 3442, 2421], 'unsupported'], [[[4294901760, 65536, 4294901760, 0], 392, 1027], 'unsupported'], [[[4294901760, 0, 4294901760, 65536], 1363, 2590], 'unsupported'], [[[4294901760, 0, 65536, 0], 3783, 1537], 'unsupported'], [[[0, 0, 0, 65536], 714, 1938], 'unsupported'], [[[65536, 0, 0, 4294901760], 358, 2532], {'rotate': 180, 'mirror': True, 'display': [358, 2532]}]], [[[[0, 65536, 4294901760, 0], 2560, 3677], {'rotate': 90, 'mirror': False, 'display': [3677, 2560]}], [[[0, 4294901760, 4294901760, 0], 2907, 2127], {'rotate': 90, 'mirror': True, 'display': [2127, 2907]}], [[[0, 0, 46341, 0], 991, 438], 'unsupported'], [[[65536, 0, 65536, 65536], 1287, 3950], 'unsupported'], [[[0, 65536, 0, 0], 2790, 437], 'unsupported'], [[[0, 4294901760, 65536, 4294901760], 3527, 100], 'unsupported'], [[[65536, 4294901760, 65536, 4294901760], 2961, 612], 'unsupported'], [[[65536, 0, 0, 4294901760], 2895, 2725], {'rotate': 180, 'mirror': True, 'display': [2895, 2725]}]], [[[[4294901760, 0, 0, 65536], 543, 1291], {'rotate': 0, 'mirror': True, 'display': [543, 1291]}], [[[0, 65536, 4294901760, 0], 1878, 1731], {'rotate': 90, 'mirror': False, 'display': [1731, 1878]}], [[[4294901760, 65536, 65536, 65536], 1654, 584], 'unsupported'], [[[4294901760, 65536, 65536, 0], 1703, 3849], 'unsupported'], [[[65536, 4294901760, 4294901760, 4294901760], 132, 2157], 'unsupported'], [[[0, 4294901760, 0, 0], 3596, 3944], 'unsupported'], [[[4294901760, 32768, 32768, 4294901760], 1623, 1094], 'unsupported'], [[[65536, 0, 0, 4294901760], 1985, 3076], {'rotate': 180, 'mirror': True, 'display': [1985, 3076]}]]]\nlabels = [\"regression: signed fixed-point conversion\", \"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":"acb116a8a9cbc44c5cb352d7e20be5056087be7b27d1acf99450db60ff1e9951","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    m, w, h = x\n    U = 65536\n    m = list(m)\n    a, b, c, d = m\n    if any(v not in (-U, 0, U) for v in m):\n        return 'unsupported'\n    if not ((b == 0 and c == 0 and a != 0 and d != 0) or (a == 0 and d == 0 and b != 0 and c != 0)):\n        return 'unsupported'\n    det = (a * d - b * c) // (U * U)\n    mirror = det == -1\n    if mirror:\n        a, b = -a, -b\n    deg = {(U, 0): 0, (0, U): 90, (-U, 0): 180, (0, -U): 270}[(a, b)]\n    if deg in (90, 270):\n        w, h = h, w\n    return {'rotate': deg, 'mirror': mirror, 'display': [w, h]}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[0, 4294901760, 4294901760, 0], 760, 3281], {'rotate': 90, 'mirror': True, 'display': [3281, 760]}], [[[4294901760, 0, 0, 4294901760], 3685, 2612], {'rotate': 180, 'mirror': False, 'display': [3685, 2612]}], [[[4294901760, 0, 65536, 4294901760], 3830, 2696], 'unsupported'], [[[0, 65536, 4294901760, 65536], 559, 2713], 'unsupported'], [[[0, 65536, 4294901760, 65536], 1463, 780], 'unsupported'], [[[65536, 4294901760, 65536, 65536], 2751, 608], 'unsupported'], [[[0, 0, 4294901760, 0], 1243, 3391], 'unsupported'], [[[4294901760, 0, 0, 4294901760], 2923, 1514], {'rotate': 180, 'mirror': False, 'display': [2923, 1514]}]], [[[[4294901760, 0, 0, 65536], 2552, 3331], {'rotate': 0, 'mirror': True, 'display': [2552, 3331]}], [[[4294901760, 0, 0, 4294901760], 66, 3419], {'rotate': 180, 'mirror': False, 'display': [66, 3419]}], [[[4294901760, 0, 4294901760, 4294901760], 2730, 1220], 'unsupported'], [[[65536, 4294901760, 0, 4294901760], 3622, 60], 'unsupported'], [[[0, 4294901760, 65536, 65536], 1290, 2847], 'unsupported'], [[[65536, 0, 4294901760, 65536], 1369, 1577], 'unsupported'], [[[4294920955, 0, 131072, 65536], 2355, 1488], 'unsupported'], [[[65536, 0, 0, 4294901760], 2680, 1583], {'rotate': 180, 'mirror': True, 'display': [2680, 1583]}]], [[[[4294901760, 0, 0, 65536], 3751, 979], {'rotate': 0, 'mirror': True, 'display': [3751, 979]}], [[[0, 4294901760, 4294901760, 0], 2252, 2590], {'rotate': 90, 'mirror': True, 'display': [2590, 2252]}], [[[4294901760, 0, 65536, 0], 3442, 2421], 'unsupported'], [[[4294901760, 65536, 4294901760, 0], 392, 1027], 'unsupported'], [[[4294901760, 0, 4294901760, 65536], 1363, 2590], 'unsupported'], [[[4294901760, 0, 65536, 0], 3783, 1537], 'unsupported'], [[[0, 0, 0, 65536], 714, 1938], 'unsupported'], [[[65536, 0, 0, 4294901760], 358, 2532], {'rotate': 180, 'mirror': True, 'display': [358, 2532]}]], [[[[0, 65536, 4294901760, 0], 2560, 3677], {'rotate': 90, 'mirror': False, 'display': [3677, 2560]}], [[[0, 4294901760, 4294901760, 0], 2907, 2127], {'rotate': 90, 'mirror': True, 'display': [2127, 2907]}], [[[0, 0, 46341, 0], 991, 438], 'unsupported'], [[[65536, 0, 65536, 65536], 1287, 3950], 'unsupported'], [[[0, 65536, 0, 0], 2790, 437], 'unsupported'], [[[0, 4294901760, 65536, 4294901760], 3527, 100], 'unsupported'], [[[65536, 4294901760, 65536, 4294901760], 2961, 612], 'unsupported'], [[[65536, 0, 0, 4294901760], 2895, 2725], {'rotate': 180, 'mirror': True, 'display': [2895, 2725]}]], [[[[4294901760, 0, 0, 65536], 543, 1291], {'rotate': 0, 'mirror': True, 'display': [543, 1291]}], [[[0, 65536, 4294901760, 0], 1878, 1731], {'rotate': 90, 'mirror': False, 'display': [1731, 1878]}], [[[4294901760, 65536, 65536, 65536], 1654, 584], 'unsupported'], [[[4294901760, 65536, 65536, 0], 1703, 3849], 'unsupported'], [[[65536, 4294901760, 4294901760, 4294901760], 132, 2157], 'unsupported'], [[[0, 4294901760, 0, 0], 3596, 3944], 'unsupported'], [[[4294901760, 32768, 32768, 4294901760], 1623, 1094], 'unsupported'], [[[65536, 0, 0, 4294901760], 1985, 3076], {'rotate': 180, 'mirror': True, 'display': [1985, 3076]}]]]\nlabels = [\"regression: signed fixed-point conversion\", \"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":"033d8713819e1f61091e922d911fe5337aacb81950aa8a994950f4510c6a97ab","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    m, w, h = x\n    U = 65536\n    m = [v - (1 << 32) if v >= (1 << 31) else v for v in m]\n    a, b, c, d = m\n    if any(v not in (-U, 0, U) for v in m):\n        return 'unsupported'\n    if not ((b == 0 and c == 0 and a != 0 and d != 0) or (a == 0 and d == 0 and b != 0 and c != 0)):\n        return 'unsupported'\n    det = (a * d - b * c) // (U * U)\n    mirror = det == -1\n    if mirror:\n        a, b = -a, -b\n    deg = {(U, 0): 0, (0, U): 90, (-U, 0): 180, (0, -U): 270}[(a, b)]\n    if deg in (90, 270):\n        w, h = h, w\n    return {'rotate': deg, 'mirror': mirror, 'display': [w, h]}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[0, 4294901760, 4294901760, 0], 760, 3281], {'rotate': 90, 'mirror': True, 'display': [3281, 760]}], [[[4294901760, 0, 0, 4294901760], 3685, 2612], {'rotate': 180, 'mirror': False, 'display': [3685, 2612]}], [[[4294901760, 0, 65536, 4294901760], 3830, 2696], 'unsupported'], [[[0, 65536, 4294901760, 65536], 559, 2713], 'unsupported'], [[[0, 65536, 4294901760, 65536], 1463, 780], 'unsupported'], [[[65536, 4294901760, 65536, 65536], 2751, 608], 'unsupported'], [[[0, 0, 4294901760, 0], 1243, 3391], 'unsupported'], [[[4294901760, 0, 0, 4294901760], 2923, 1514], {'rotate': 180, 'mirror': False, 'display': [2923, 1514]}]], [[[[4294901760, 0, 0, 65536], 2552, 3331], {'rotate': 0, 'mirror': True, 'display': [2552, 3331]}], [[[4294901760, 0, 0, 4294901760], 66, 3419], {'rotate': 180, 'mirror': False, 'display': [66, 3419]}], [[[4294901760, 0, 4294901760, 4294901760], 2730, 1220], 'unsupported'], [[[65536, 4294901760, 0, 4294901760], 3622, 60], 'unsupported'], [[[0, 4294901760, 65536, 65536], 1290, 2847], 'unsupported'], [[[65536, 0, 4294901760, 65536], 1369, 1577], 'unsupported'], [[[4294920955, 0, 131072, 65536], 2355, 1488], 'unsupported'], [[[65536, 0, 0, 4294901760], 2680, 1583], {'rotate': 180, 'mirror': True, 'display': [2680, 1583]}]], [[[[4294901760, 0, 0, 65536], 3751, 979], {'rotate': 0, 'mirror': True, 'display': [3751, 979]}], [[[0, 4294901760, 4294901760, 0], 2252, 2590], {'rotate': 90, 'mirror': True, 'display': [2590, 2252]}], [[[4294901760, 0, 65536, 0], 3442, 2421], 'unsupported'], [[[4294901760, 65536, 4294901760, 0], 392, 1027], 'unsupported'], [[[4294901760, 0, 4294901760, 65536], 1363, 2590], 'unsupported'], [[[4294901760, 0, 65536, 0], 3783, 1537], 'unsupported'], [[[0, 0, 0, 65536], 714, 1938], 'unsupported'], [[[65536, 0, 0, 4294901760], 358, 2532], {'rotate': 180, 'mirror': True, 'display': [358, 2532]}]], [[[[0, 65536, 4294901760, 0], 2560, 3677], {'rotate': 90, 'mirror': False, 'display': [3677, 2560]}], [[[0, 4294901760, 4294901760, 0], 2907, 2127], {'rotate': 90, 'mirror': True, 'display': [2127, 2907]}], [[[0, 0, 46341, 0], 991, 438], 'unsupported'], [[[65536, 0, 65536, 65536], 1287, 3950], 'unsupported'], [[[0, 65536, 0, 0], 2790, 437], 'unsupported'], [[[0, 4294901760, 65536, 4294901760], 3527, 100], 'unsupported'], [[[65536, 4294901760, 65536, 4294901760], 2961, 612], 'unsupported'], [[[65536, 0, 0, 4294901760], 2895, 2725], {'rotate': 180, 'mirror': True, 'display': [2895, 2725]}]], [[[[4294901760, 0, 0, 65536], 543, 1291], {'rotate': 0, 'mirror': True, 'display': [543, 1291]}], [[[0, 65536, 4294901760, 0], 1878, 1731], {'rotate': 90, 'mirror': False, 'display': [1731, 1878]}], [[[4294901760, 65536, 65536, 65536], 1654, 584], 'unsupported'], [[[4294901760, 65536, 65536, 0], 1703, 3849], 'unsupported'], [[[65536, 4294901760, 4294901760, 4294901760], 132, 2157], 'unsupported'], [[[0, 4294901760, 0, 0], 3596, 3944], 'unsupported'], [[[4294901760, 32768, 32768, 4294901760], 1623, 1094], 'unsupported'], [[[65536, 0, 0, 4294901760], 1985, 3076], {'rotate': 180, 'mirror': True, 'display': [1985, 3076]}]]]\nlabels = [\"regression: signed fixed-point conversion\", \"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-video-display-matrix-signed-words","generated_at":"2026-09-29T14:49:40.911969+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":"Subtract 2^32 from words with the sign bit set.","root_cause":"Negative 16.16 entries such as 0xFFFF0000 are not converted from two's complement.","sha256":"f94538ce2949707cca349c3e3de0203e482bd33587b8e26cf82cd189408ad10f","title":"Display matrix words are read as unsigned · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.059,"exit_code":1,"observations":[{"actual":"unsupported","check":"regression: signed fixed-point conversion 0","expected":{"display":[3281,760],"mirror":true,"rotate":90},"passed":false},{"actual":"unsupported","check":"repair trap 1","expected":{"display":[3685,2612],"mirror":false,"rotate":180},"passed":false},{"actual":"unsupported","check":"combined fault 2","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 3","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 4","expected":"unsupported","passed":true},{"actual":"unsupported","check":"boundary 5","expected":"unsupported","passed":true},{"actual":"unsupported","check":"boundary 6","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 7","expected":{"display":[2923,1514],"mirror":false,"rotate":180},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: signed fixed-point conversion 0\", \"actual\": \"unsupported\", \"expected\": {\"rotate\": 90, \"mirror\": true, \"display\": [3281, 760]}, \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": \"unsupported\", \"expected\": {\"rotate\": 180, \"mirror\": false, \"display\": [3685, 2612]}, \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 3\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 4\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 7\", \"actual\": \"unsupported\", \"expected\": {\"rotate\": 180, \"mirror\": false, \"display\": [2923, 1514]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.048,"exit_code":1,"observations":[{"actual":"unsupported","check":"regression: signed fixed-point conversion 0","expected":{"display":[3281,760],"mirror":true,"rotate":90},"passed":false},{"actual":"unsupported","check":"repair trap 1","expected":{"display":[3685,2612],"mirror":false,"rotate":180},"passed":false},{"actual":"unsupported","check":"combined fault 2","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 3","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 4","expected":"unsupported","passed":true},{"actual":"unsupported","check":"boundary 5","expected":"unsupported","passed":true},{"actual":"unsupported","check":"boundary 6","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 7","expected":{"display":[2923,1514],"mirror":false,"rotate":180},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: signed fixed-point conversion 0\", \"actual\": \"unsupported\", \"expected\": {\"rotate\": 90, \"mirror\": true, \"display\": [3281, 760]}, \"passed\": false}, {\"check\": \"repair trap 1\", \"actual\": \"unsupported\", \"expected\": {\"rotate\": 180, \"mirror\": false, \"display\": [3685, 2612]}, \"passed\": false}, {\"check\": \"combined fault 2\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 3\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 4\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 7\", \"actual\": \"unsupported\", \"expected\": {\"rotate\": 180, \"mirror\": false, \"display\": [2923, 1514]}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.028,"exit_code":0,"observations":[{"actual":{"display":[3281,760],"mirror":true,"rotate":90},"check":"regression: signed fixed-point conversion 0","expected":{"display":[3281,760],"mirror":true,"rotate":90},"passed":true},{"actual":{"display":[3685,2612],"mirror":false,"rotate":180},"check":"repair trap 1","expected":{"display":[3685,2612],"mirror":false,"rotate":180},"passed":true},{"actual":"unsupported","check":"combined fault 2","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 3","expected":"unsupported","passed":true},{"actual":"unsupported","check":"control 4","expected":"unsupported","passed":true},{"actual":"unsupported","check":"boundary 5","expected":"unsupported","passed":true},{"actual":"unsupported","check":"boundary 6","expected":"unsupported","passed":true},{"actual":{"display":[2923,1514],"mirror":false,"rotate":180},"check":"control 7","expected":{"display":[2923,1514],"mirror":false,"rotate":180},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: signed fixed-point conversion 0\", \"actual\": {\"rotate\": 90, \"mirror\": true, \"display\": [3281, 760]}, \"expected\": {\"rotate\": 90, \"mirror\": true, \"display\": [3281, 760]}, \"passed\": true}, {\"check\": \"repair trap 1\", \"actual\": {\"rotate\": 180, \"mirror\": false, \"display\": [3685, 2612]}, \"expected\": {\"rotate\": 180, \"mirror\": false, \"display\": [3685, 2612]}, \"passed\": true}, {\"check\": \"combined fault 2\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 3\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 4\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"boundary 5\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"boundary 6\", \"actual\": \"unsupported\", \"expected\": \"unsupported\", \"passed\": true}, {\"check\": \"control 7\", \"actual\": {\"rotate\": 180, \"mirror\": false, \"display\": [2923, 1514]}, \"expected\": {\"rotate\": 180, \"mirror\": false, \"display\": [2923, 1514]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}