{"abstract":"The impulse response comes out reversed for asymmetric taps.","category":"Digital signal filters","checks":7,"contract":"Input [coeffs, samples] as Q15 integers. Each output accumulates the full-precision products c_k x[n-k] (zero history) in a wide accumulator, then rounds once (add 2**14, arithmetic shift 15) and saturates to int16. Return {\"y\": outputs, \"saturations\": number of clipped outputs}.","evaluation_group":"w2-digital_signal_filters-q15-fir-wide-accumulator","failed_approach":"The attempted repair inserts at the front but drops the second-newest instead of the oldest sample.","family":"w2-digital_signal_filters-q15-fir-wide-accumulator-delay-line-direction","id":"FA-91801","implementations":{"attempt":{"sha256":"e1dda233bbcc4e919a528a735be34e4ac534a04197e905339b0f35cd0165ae77","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    coefs, xs = x\n    hist = [0] * len(coefs)\n    out = []\n    sat = 0\n    for v in xs:\n        hist = [v] + hist[1:]\n        acc = sum(c * s for c, s in zip(coefs, hist))\n        y = (acc + (1 << 14)) >> 15\n        if y > 32767:\n            y = 32767\n            sat += 1\n        elif y < -32768:\n            y = -32768\n            sat += 1\n        out.append(y)\n    return {'y': out, 'saturations': sat}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: exact rail then negative overflow', [[16384, 16384, 32767], [32767, 32767, -32768, -32768]], {'y': [16384, 32767, 32766, -2], 'saturations': 0}], ['regression: asymmetric taps', [[16384, 8192, 0, -4096], [1000, 0, 0, 0, 0]], {'y': [500, 250, 0, -125, 0], 'saturations': 0}], ['repair check: small products lost', [[1000, 1000, 1000], [100, 100, 100, 100]], {'y': [3, 6, 9, 9], 'saturations': 0}], ['control: random q15 fir 6', [[2221], [-13506, -128, -3471, -275, -20285]], {'y': [-915, -9, -235, -19, -1375], 'saturations': 0}], ['control: random q15 fir 10', [[17726], [-261, 178, -17320, 220]], {'y': [-141, 96, -9369, 119], 'saturations': 0}], ['control: random q15 fir 11', [[-1511], [227, 17400]], {'y': [-10, -802], 'saturations': 0}], ['control: random q15 fir 14', [[2191], [5955, -128]], {'y': [398, -9], 'saturations': 0}]], [['regression: random q15 fir 1', [[-2422, 8115, -26238], [81, -19840, 164, 18, -31318, 26443]], {'y': [-6, 1487, -4990, 15926, 2188, -9725], 'saturations': 0}], ['regression: random q15 fir 2', [[-1074, -846, 29231], [-7102, 287, 18053, 24830, -286, 148]], {'y': [233, 174, -6935, -1024, 15473, 22152], 'saturations': 0}], ['repair check: positive overflow', [[32767, 32767], [32767, 32767]], {'y': [32766, 32767], 'saturations': 1}], ['control: random q15 fir 16', [[-1447], [-227, 108]], {'y': [10, -5], 'saturations': 0}], ['control: random q15 fir 21', [[-28191], [-29871, 2888, 20728, -231, -2825, 26092]], {'y': [25699, -2485, -17833, 199, 2430, -22447], 'saturations': 0}], ['control: random q15 fir 23', [[2603], [-222, 296, 26049]], {'y': [-18, 24, 2069], 'saturations': 0}], ['control: random q15 fir 25', [[-1403], [-217, -76, -13515]], {'y': [9, 3, 579], 'saturations': 0}]], [['regression: random q15 fir 4', [[375, 13267], [120, 1419, -3648]], {'y': [1, 65, 533], 'saturations': 0}], ['regression: random q15 fir 5', [[21007, -2568, -1633], [-267, 32265, 7287, 49]], {'y': [-171, 20705, 2156, -2148], 'saturations': 0}], ['regression: exact rail then negative overflow', [[16384, 16384, 32767], [32767, 32767, -32768, -32768]], {'y': [16384, 32767, 32766, -2], 'saturations': 0}], ['control: random q15 fir 30', [[-1704], [264, 265, -20482, -11272]], {'y': [-14, -14, 1065, 586], 'saturations': 0}], ['control: random q15 fir 31', [[-3085], [-26725, -134, 160, 76]], {'y': [2516, 13, -15, -7], 'saturations': 0}], ['control: random q15 fir 32', [[-531], [-184, 26, -95, 27147, -17595, -11363]], {'y': [3, 0, 2, -440, 285, 184], 'saturations': 0}], ['control: random q15 fir 39', [[6030], [48, -8, -16638, -41, -299]], {'y': [9, -1, -3062, -8, -55], 'saturations': 0}]], [['regression: random q15 fir 8', [[-249, 2187, 304], [24116, 6453, 6219, -174, -23699]], {'y': [-183, 1561, 607, 476, 226], 'saturations': 0}], ['regression: random q15 fir 9', [[-2404, -24823], [-43, 254, -254, -25264]], {'y': [3, 14, -174, 2046], 'saturations': 0}], ['regression: random q15 fir 0', [[-32619, -22239, 2111], [244, -26104, -17179, -16]], {'y': [-243, 25820, 32767, 9993], 'saturations': 1}], ['control: random q15 fir 41', [[1560], [-107, 23988, 110, -204]], {'y': [-5, 1142, 5, -10], 'saturations': 0}], ['control: random q15 fir 48', [[-4769], [-272, 210, 31, -12840, -276, 18842]], {'y': [40, -31, -5, 1869, 40, -2742], 'saturations': 0}], ['control: random q15 fir 6', [[2221], [-13506, -128, -3471, -275, -20285]], {'y': [-915, -9, -235, -19, -1375], 'saturations': 0}], ['control: random q15 fir 10', [[17726], [-261, 178, -17320, 220]], {'y': [-141, 96, -9369, 119], 'saturations': 0}]], [['regression: random q15 fir 13', [[-2749, -1952, 11064], [29305, 10126]], {'y': [-2458, -2595], 'saturations': 0}], ['regression: random q15 fir 15', [[7820, -2373, 744], [14902, 174, -178, 7258, -26936]], {'y': [3556, -1038, 283, 1749, -6958], 'saturations': 0}], ['regression: random q15 fir 2', [[-1074, -846, 29231], [-7102, 287, 18053, 24830, -286, 148]], {'y': [233, 174, -6935, -1024, 15473, 22152], 'saturations': 0}], ['control: random q15 fir 11', [[-1511], [227, 17400]], {'y': [-10, -802], 'saturations': 0}], ['control: random q15 fir 14', [[2191], [5955, -128]], {'y': [398, -9], 'saturations': 0}], ['control: random q15 fir 16', [[-1447], [-227, 108]], {'y': [10, -5], 'saturations': 0}], ['control: random q15 fir 21', [[-28191], [-29871, 2888, 20728, -231, -2825, 26092]], {'y': [25699, -2485, -17833, 199, 2430, -22447], 'saturations': 0}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, 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":"852197009172600636e860b5cfa31f38216b0a57037a9f465c4a89687dd99b81","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    coefs, xs = x\n    hist = [0] * len(coefs)\n    out = []\n    sat = 0\n    for v in xs:\n        hist = hist[1:] + [v]\n        acc = sum(c * s for c, s in zip(coefs, hist))\n        y = (acc + (1 << 14)) >> 15\n        if y > 32767:\n            y = 32767\n            sat += 1\n        elif y < -32768:\n            y = -32768\n            sat += 1\n        out.append(y)\n    return {'y': out, 'saturations': sat}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: exact rail then negative overflow', [[16384, 16384, 32767], [32767, 32767, -32768, -32768]], {'y': [16384, 32767, 32766, -2], 'saturations': 0}], ['regression: asymmetric taps', [[16384, 8192, 0, -4096], [1000, 0, 0, 0, 0]], {'y': [500, 250, 0, -125, 0], 'saturations': 0}], ['repair check: small products lost', [[1000, 1000, 1000], [100, 100, 100, 100]], {'y': [3, 6, 9, 9], 'saturations': 0}], ['control: random q15 fir 6', [[2221], [-13506, -128, -3471, -275, -20285]], {'y': [-915, -9, -235, -19, -1375], 'saturations': 0}], ['control: random q15 fir 10', [[17726], [-261, 178, -17320, 220]], {'y': [-141, 96, -9369, 119], 'saturations': 0}], ['control: random q15 fir 11', [[-1511], [227, 17400]], {'y': [-10, -802], 'saturations': 0}], ['control: random q15 fir 14', [[2191], [5955, -128]], {'y': [398, -9], 'saturations': 0}]], [['regression: random q15 fir 1', [[-2422, 8115, -26238], [81, -19840, 164, 18, -31318, 26443]], {'y': [-6, 1487, -4990, 15926, 2188, -9725], 'saturations': 0}], ['regression: random q15 fir 2', [[-1074, -846, 29231], [-7102, 287, 18053, 24830, -286, 148]], {'y': [233, 174, -6935, -1024, 15473, 22152], 'saturations': 0}], ['repair check: positive overflow', [[32767, 32767], [32767, 32767]], {'y': [32766, 32767], 'saturations': 1}], ['control: random q15 fir 16', [[-1447], [-227, 108]], {'y': [10, -5], 'saturations': 0}], ['control: random q15 fir 21', [[-28191], [-29871, 2888, 20728, -231, -2825, 26092]], {'y': [25699, -2485, -17833, 199, 2430, -22447], 'saturations': 0}], ['control: random q15 fir 23', [[2603], [-222, 296, 26049]], {'y': [-18, 24, 2069], 'saturations': 0}], ['control: random q15 fir 25', [[-1403], [-217, -76, -13515]], {'y': [9, 3, 579], 'saturations': 0}]], [['regression: random q15 fir 4', [[375, 13267], [120, 1419, -3648]], {'y': [1, 65, 533], 'saturations': 0}], ['regression: random q15 fir 5', [[21007, -2568, -1633], [-267, 32265, 7287, 49]], {'y': [-171, 20705, 2156, -2148], 'saturations': 0}], ['regression: exact rail then negative overflow', [[16384, 16384, 32767], [32767, 32767, -32768, -32768]], {'y': [16384, 32767, 32766, -2], 'saturations': 0}], ['control: random q15 fir 30', [[-1704], [264, 265, -20482, -11272]], {'y': [-14, -14, 1065, 586], 'saturations': 0}], ['control: random q15 fir 31', [[-3085], [-26725, -134, 160, 76]], {'y': [2516, 13, -15, -7], 'saturations': 0}], ['control: random q15 fir 32', [[-531], [-184, 26, -95, 27147, -17595, -11363]], {'y': [3, 0, 2, -440, 285, 184], 'saturations': 0}], ['control: random q15 fir 39', [[6030], [48, -8, -16638, -41, -299]], {'y': [9, -1, -3062, -8, -55], 'saturations': 0}]], [['regression: random q15 fir 8', [[-249, 2187, 304], [24116, 6453, 6219, -174, -23699]], {'y': [-183, 1561, 607, 476, 226], 'saturations': 0}], ['regression: random q15 fir 9', [[-2404, -24823], [-43, 254, -254, -25264]], {'y': [3, 14, -174, 2046], 'saturations': 0}], ['regression: random q15 fir 0', [[-32619, -22239, 2111], [244, -26104, -17179, -16]], {'y': [-243, 25820, 32767, 9993], 'saturations': 1}], ['control: random q15 fir 41', [[1560], [-107, 23988, 110, -204]], {'y': [-5, 1142, 5, -10], 'saturations': 0}], ['control: random q15 fir 48', [[-4769], [-272, 210, 31, -12840, -276, 18842]], {'y': [40, -31, -5, 1869, 40, -2742], 'saturations': 0}], ['control: random q15 fir 6', [[2221], [-13506, -128, -3471, -275, -20285]], {'y': [-915, -9, -235, -19, -1375], 'saturations': 0}], ['control: random q15 fir 10', [[17726], [-261, 178, -17320, 220]], {'y': [-141, 96, -9369, 119], 'saturations': 0}]], [['regression: random q15 fir 13', [[-2749, -1952, 11064], [29305, 10126]], {'y': [-2458, -2595], 'saturations': 0}], ['regression: random q15 fir 15', [[7820, -2373, 744], [14902, 174, -178, 7258, -26936]], {'y': [3556, -1038, 283, 1749, -6958], 'saturations': 0}], ['regression: random q15 fir 2', [[-1074, -846, 29231], [-7102, 287, 18053, 24830, -286, 148]], {'y': [233, 174, -6935, -1024, 15473, 22152], 'saturations': 0}], ['control: random q15 fir 11', [[-1511], [227, 17400]], {'y': [-10, -802], 'saturations': 0}], ['control: random q15 fir 14', [[2191], [5955, -128]], {'y': [398, -9], 'saturations': 0}], ['control: random q15 fir 16', [[-1447], [-227, 108]], {'y': [10, -5], 'saturations': 0}], ['control: random q15 fir 21', [[-28191], [-29871, 2888, 20728, -231, -2825, 26092]], {'y': [25699, -2485, -17833, 199, 2430, -22447], 'saturations': 0}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, 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":"ad7e620592ebbdb7e86a75e97599f45e9f900612c650eb5941712cce622538e2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    coefs, xs = x\n    hist = [0] * len(coefs)\n    out = []\n    sat = 0\n    for v in xs:\n        hist = [v] + hist[:-1]\n        acc = sum(c * s for c, s in zip(coefs, hist))\n        y = (acc + (1 << 14)) >> 15\n        if y > 32767:\n            y = 32767\n            sat += 1\n        elif y < -32768:\n            y = -32768\n            sat += 1\n        out.append(y)\n    return {'y': out, 'saturations': sat}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: exact rail then negative overflow', [[16384, 16384, 32767], [32767, 32767, -32768, -32768]], {'y': [16384, 32767, 32766, -2], 'saturations': 0}], ['regression: asymmetric taps', [[16384, 8192, 0, -4096], [1000, 0, 0, 0, 0]], {'y': [500, 250, 0, -125, 0], 'saturations': 0}], ['repair check: small products lost', [[1000, 1000, 1000], [100, 100, 100, 100]], {'y': [3, 6, 9, 9], 'saturations': 0}], ['control: random q15 fir 6', [[2221], [-13506, -128, -3471, -275, -20285]], {'y': [-915, -9, -235, -19, -1375], 'saturations': 0}], ['control: random q15 fir 10', [[17726], [-261, 178, -17320, 220]], {'y': [-141, 96, -9369, 119], 'saturations': 0}], ['control: random q15 fir 11', [[-1511], [227, 17400]], {'y': [-10, -802], 'saturations': 0}], ['control: random q15 fir 14', [[2191], [5955, -128]], {'y': [398, -9], 'saturations': 0}]], [['regression: random q15 fir 1', [[-2422, 8115, -26238], [81, -19840, 164, 18, -31318, 26443]], {'y': [-6, 1487, -4990, 15926, 2188, -9725], 'saturations': 0}], ['regression: random q15 fir 2', [[-1074, -846, 29231], [-7102, 287, 18053, 24830, -286, 148]], {'y': [233, 174, -6935, -1024, 15473, 22152], 'saturations': 0}], ['repair check: positive overflow', [[32767, 32767], [32767, 32767]], {'y': [32766, 32767], 'saturations': 1}], ['control: random q15 fir 16', [[-1447], [-227, 108]], {'y': [10, -5], 'saturations': 0}], ['control: random q15 fir 21', [[-28191], [-29871, 2888, 20728, -231, -2825, 26092]], {'y': [25699, -2485, -17833, 199, 2430, -22447], 'saturations': 0}], ['control: random q15 fir 23', [[2603], [-222, 296, 26049]], {'y': [-18, 24, 2069], 'saturations': 0}], ['control: random q15 fir 25', [[-1403], [-217, -76, -13515]], {'y': [9, 3, 579], 'saturations': 0}]], [['regression: random q15 fir 4', [[375, 13267], [120, 1419, -3648]], {'y': [1, 65, 533], 'saturations': 0}], ['regression: random q15 fir 5', [[21007, -2568, -1633], [-267, 32265, 7287, 49]], {'y': [-171, 20705, 2156, -2148], 'saturations': 0}], ['regression: exact rail then negative overflow', [[16384, 16384, 32767], [32767, 32767, -32768, -32768]], {'y': [16384, 32767, 32766, -2], 'saturations': 0}], ['control: random q15 fir 30', [[-1704], [264, 265, -20482, -11272]], {'y': [-14, -14, 1065, 586], 'saturations': 0}], ['control: random q15 fir 31', [[-3085], [-26725, -134, 160, 76]], {'y': [2516, 13, -15, -7], 'saturations': 0}], ['control: random q15 fir 32', [[-531], [-184, 26, -95, 27147, -17595, -11363]], {'y': [3, 0, 2, -440, 285, 184], 'saturations': 0}], ['control: random q15 fir 39', [[6030], [48, -8, -16638, -41, -299]], {'y': [9, -1, -3062, -8, -55], 'saturations': 0}]], [['regression: random q15 fir 8', [[-249, 2187, 304], [24116, 6453, 6219, -174, -23699]], {'y': [-183, 1561, 607, 476, 226], 'saturations': 0}], ['regression: random q15 fir 9', [[-2404, -24823], [-43, 254, -254, -25264]], {'y': [3, 14, -174, 2046], 'saturations': 0}], ['regression: random q15 fir 0', [[-32619, -22239, 2111], [244, -26104, -17179, -16]], {'y': [-243, 25820, 32767, 9993], 'saturations': 1}], ['control: random q15 fir 41', [[1560], [-107, 23988, 110, -204]], {'y': [-5, 1142, 5, -10], 'saturations': 0}], ['control: random q15 fir 48', [[-4769], [-272, 210, 31, -12840, -276, 18842]], {'y': [40, -31, -5, 1869, 40, -2742], 'saturations': 0}], ['control: random q15 fir 6', [[2221], [-13506, -128, -3471, -275, -20285]], {'y': [-915, -9, -235, -19, -1375], 'saturations': 0}], ['control: random q15 fir 10', [[17726], [-261, 178, -17320, 220]], {'y': [-141, 96, -9369, 119], 'saturations': 0}]], [['regression: random q15 fir 13', [[-2749, -1952, 11064], [29305, 10126]], {'y': [-2458, -2595], 'saturations': 0}], ['regression: random q15 fir 15', [[7820, -2373, 744], [14902, 174, -178, 7258, -26936]], {'y': [3556, -1038, 283, 1749, -6958], 'saturations': 0}], ['regression: random q15 fir 2', [[-1074, -846, 29231], [-7102, 287, 18053, 24830, -286, 148]], {'y': [233, 174, -6935, -1024, 15473, 22152], 'saturations': 0}], ['control: random q15 fir 11', [[-1511], [227, 17400]], {'y': [-10, -802], 'saturations': 0}], ['control: random q15 fir 14', [[2191], [5955, -128]], {'y': [398, -9], 'saturations': 0}], ['control: random q15 fir 16', [[-1447], [-227, 108]], {'y': [10, -5], 'saturations': 0}], ['control: random q15 fir 21', [[-28191], [-29871, 2888, 20728, -231, -2825, 26092]], {'y': [25699, -2485, -17833, 199, 2430, -22447], 'saturations': 0}]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, 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 toy contract; exact rational arithmetic or fixed-decimal rounding keeps outputs strict JSON. It is not a production DSP library and claims no standards conformance. 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-digital_signal_filters-q15-fir-wide-accumulator-delay-line-direction","generated_at":"2026-09-29T14:51:39.437723+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"DSP MAC units keep guard bits and round once; per-product rounding or missing overflow accounting degrades fixed-point FIRs.","repair":"Insert the new sample at index 0: [v] + hist[:-1].","root_cause":"The history is updated as hist[1:] + [v], so the newest sample aligns with the last coefficient.","sha256":"dbeb170406820a0aec59063f8db7eb26696df818774bb4a9c7643eeecfa16901","title":"Q15 FIR pushes new samples onto the wrong end of the delay line · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.74,"exit_code":1,"observations":[{"actual":{"saturations":0,"y":[16384,16384,-16384,-16384]},"check":"regression: exact rail then negative overflow","expected":{"saturations":0,"y":[16384,32767,32766,-2]},"passed":false},{"actual":{"saturations":0,"y":[500,0,0,0,0]},"check":"regression: asymmetric taps","expected":{"saturations":0,"y":[500,250,0,-125,0]},"passed":false},{"actual":{"saturations":0,"y":[3,3,3,3]},"check":"repair check: small products lost","expected":{"saturations":0,"y":[3,6,9,9]},"passed":false},{"actual":{"saturations":0,"y":[-915,-9,-235,-19,-1375]},"check":"control: random q15 fir 6","expected":{"saturations":0,"y":[-915,-9,-235,-19,-1375]},"passed":true},{"actual":{"saturations":0,"y":[-141,96,-9369,119]},"check":"control: random q15 fir 10","expected":{"saturations":0,"y":[-141,96,-9369,119]},"passed":true},{"actual":{"saturations":0,"y":[-10,-802]},"check":"control: random q15 fir 11","expected":{"saturations":0,"y":[-10,-802]},"passed":true},{"actual":{"saturations":0,"y":[398,-9]},"check":"control: random q15 fir 14","expected":{"saturations":0,"y":[398,-9]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: exact rail then negative overflow\", \"actual\": {\"y\": [16384, 16384, -16384, -16384], \"saturations\": 0}, \"expected\": {\"y\": [16384, 32767, 32766, -2], \"saturations\": 0}, \"passed\": false}, {\"check\": \"regression: asymmetric taps\", \"actual\": {\"y\": [500, 0, 0, 0, 0], \"saturations\": 0}, \"expected\": {\"y\": [500, 250, 0, -125, 0], \"saturations\": 0}, \"passed\": false}, {\"check\": \"repair check: small products lost\", \"actual\": {\"y\": [3, 3, 3, 3], \"saturations\": 0}, \"expected\": {\"y\": [3, 6, 9, 9], \"saturations\": 0}, \"passed\": false}, {\"check\": \"control: random q15 fir 6\", \"actual\": {\"y\": [-915, -9, -235, -19, -1375], \"saturations\": 0}, \"expected\": {\"y\": [-915, -9, -235, -19, -1375], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 10\", \"actual\": {\"y\": [-141, 96, -9369, 119], \"saturations\": 0}, \"expected\": {\"y\": [-141, 96, -9369, 119], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 11\", \"actual\": {\"y\": [-10, -802], \"saturations\": 0}, \"expected\": {\"y\": [-10, -802], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 14\", \"actual\": {\"y\": [398, -9], \"saturations\": 0}, \"expected\": {\"y\": [398, -9], \"saturations\": 0}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.093,"exit_code":1,"observations":[{"actual":{"saturations":1,"y":[32766,32767,0,-32767]},"check":"regression: exact rail then negative overflow","expected":{"saturations":0,"y":[16384,32767,32766,-2]},"passed":false},{"actual":{"saturations":0,"y":[-125,0,250,500,0]},"check":"regression: asymmetric taps","expected":{"saturations":0,"y":[500,250,0,-125,0]},"passed":false},{"actual":{"saturations":0,"y":[3,6,9,9]},"check":"repair check: small products lost","expected":{"saturations":0,"y":[3,6,9,9]},"passed":true},{"actual":{"saturations":0,"y":[-915,-9,-235,-19,-1375]},"check":"control: random q15 fir 6","expected":{"saturations":0,"y":[-915,-9,-235,-19,-1375]},"passed":true},{"actual":{"saturations":0,"y":[-141,96,-9369,119]},"check":"control: random q15 fir 10","expected":{"saturations":0,"y":[-141,96,-9369,119]},"passed":true},{"actual":{"saturations":0,"y":[-10,-802]},"check":"control: random q15 fir 11","expected":{"saturations":0,"y":[-10,-802]},"passed":true},{"actual":{"saturations":0,"y":[398,-9]},"check":"control: random q15 fir 14","expected":{"saturations":0,"y":[398,-9]},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: exact rail then negative overflow\", \"actual\": {\"y\": [32766, 32767, 0, -32767], \"saturations\": 1}, \"expected\": {\"y\": [16384, 32767, 32766, -2], \"saturations\": 0}, \"passed\": false}, {\"check\": \"regression: asymmetric taps\", \"actual\": {\"y\": [-125, 0, 250, 500, 0], \"saturations\": 0}, \"expected\": {\"y\": [500, 250, 0, -125, 0], \"saturations\": 0}, \"passed\": false}, {\"check\": \"repair check: small products lost\", \"actual\": {\"y\": [3, 6, 9, 9], \"saturations\": 0}, \"expected\": {\"y\": [3, 6, 9, 9], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 6\", \"actual\": {\"y\": [-915, -9, -235, -19, -1375], \"saturations\": 0}, \"expected\": {\"y\": [-915, -9, -235, -19, -1375], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 10\", \"actual\": {\"y\": [-141, 96, -9369, 119], \"saturations\": 0}, \"expected\": {\"y\": [-141, 96, -9369, 119], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 11\", \"actual\": {\"y\": [-10, -802], \"saturations\": 0}, \"expected\": {\"y\": [-10, -802], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 14\", \"actual\": {\"y\": [398, -9], \"saturations\": 0}, \"expected\": {\"y\": [398, -9], \"saturations\": 0}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.36,"exit_code":0,"observations":[{"actual":{"saturations":0,"y":[16384,32767,32766,-2]},"check":"regression: exact rail then negative overflow","expected":{"saturations":0,"y":[16384,32767,32766,-2]},"passed":true},{"actual":{"saturations":0,"y":[500,250,0,-125,0]},"check":"regression: asymmetric taps","expected":{"saturations":0,"y":[500,250,0,-125,0]},"passed":true},{"actual":{"saturations":0,"y":[3,6,9,9]},"check":"repair check: small products lost","expected":{"saturations":0,"y":[3,6,9,9]},"passed":true},{"actual":{"saturations":0,"y":[-915,-9,-235,-19,-1375]},"check":"control: random q15 fir 6","expected":{"saturations":0,"y":[-915,-9,-235,-19,-1375]},"passed":true},{"actual":{"saturations":0,"y":[-141,96,-9369,119]},"check":"control: random q15 fir 10","expected":{"saturations":0,"y":[-141,96,-9369,119]},"passed":true},{"actual":{"saturations":0,"y":[-10,-802]},"check":"control: random q15 fir 11","expected":{"saturations":0,"y":[-10,-802]},"passed":true},{"actual":{"saturations":0,"y":[398,-9]},"check":"control: random q15 fir 14","expected":{"saturations":0,"y":[398,-9]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: exact rail then negative overflow\", \"actual\": {\"y\": [16384, 32767, 32766, -2], \"saturations\": 0}, \"expected\": {\"y\": [16384, 32767, 32766, -2], \"saturations\": 0}, \"passed\": true}, {\"check\": \"regression: asymmetric taps\", \"actual\": {\"y\": [500, 250, 0, -125, 0], \"saturations\": 0}, \"expected\": {\"y\": [500, 250, 0, -125, 0], \"saturations\": 0}, \"passed\": true}, {\"check\": \"repair check: small products lost\", \"actual\": {\"y\": [3, 6, 9, 9], \"saturations\": 0}, \"expected\": {\"y\": [3, 6, 9, 9], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 6\", \"actual\": {\"y\": [-915, -9, -235, -19, -1375], \"saturations\": 0}, \"expected\": {\"y\": [-915, -9, -235, -19, -1375], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 10\", \"actual\": {\"y\": [-141, 96, -9369, 119], \"saturations\": 0}, \"expected\": {\"y\": [-141, 96, -9369, 119], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 11\", \"actual\": {\"y\": [-10, -802], \"saturations\": 0}, \"expected\": {\"y\": [-10, -802], \"saturations\": 0}, \"passed\": true}, {\"check\": \"control: random q15 fir 14\", \"actual\": {\"y\": [398, -9], \"saturations\": 0}, \"expected\": {\"y\": [398, -9], \"saturations\": 0}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}