{"abstract":"The DC gain is far above unity for long filters.","category":"Digital signal filters","checks":7,"contract":"Input [N, fc, window]; fc is the cutoff as a fraction of Nyquist in (0, 1], window hamming (0.54 - 0.46 cos(2 pi n/(N-1))), hann (0.5 - 0.5 cos(...)) or rect (N = 1 uses 1). Taps h[n] = fc sinc(fc (n - (N-1)/2)) w[n], normalized to unit DC gain and rounded to 8 decimals; \"bad-spec\" for invalid input (Hann needs N != 2).","evaluation_group":"w2-digital_signal_filters-windowed-sinc-lowpass","failed_approach":"The attempted repair divides by the sum of absolute taps, which differs when side lobes are negative.","family":"w2-digital_signal_filters-windowed-sinc-lowpass-dc-gain-normalization","id":"FA-91511","implementations":{"attempt":{"sha256":"21c8a22dba640856712d614901f8c2fa07998e6b8e3a7955874f1fef922a0bb1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    N, fc_s, win = x\n    fc = float(Fraction(fc_s))\n    if N < 1 or not 0 < fc <= 1:\n        return 'bad-spec'\n    c = (N - 1) / 2\n    taps = []\n    for n in range(N):\n        t = n - c\n        s = 1.0 if t == 0 else math.sin(math.pi * fc * t) / (math.pi * fc * t)\n        if N == 1 or win == 'rect':\n            w = 1.0\n        elif win == 'hann':\n            w = 0.5 - 0.5 * math.cos(2 * math.pi * n / (N - 1))\n        else:\n            w = 0.54 - 0.46 * math.cos(2 * math.pi * n / (N - 1))\n        taps.append(fc * s * w)\n    tot = sum(abs(v) for v in taps)\n    return [round(v / tot, 8) + 0.0 for v in taps]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: N=2 fc=1/2 hamming', [2, '1/2', 'hamming'], [0.5, 0.5]], ['regression: N=2 fc=1/2 rect', [2, '1/2', 'rect'], [0.5, 0.5]], ['regression: N=4 fc=1 hamming', [4, '1', 'hamming'], [-0.01793722, 0.51793722, 0.51793722, -0.01793722]], ['control: N=1 fc=1/2 hamming', [1, '1/2', 'hamming'], [1.0]], ['control: N=1 fc=1/2 hann', [1, '1/2', 'hann'], [1.0]], ['control: N=1 fc=1/2 rect', [1, '1/2', 'rect'], [1.0]], ['control: N=1 fc=1/4 hamming', [1, '1/4', 'hamming'], [1.0]]], [['regression: N=2 fc=1/4 rect', [2, '1/4', 'rect'], [0.5, 0.5]], ['regression: N=2 fc=3/5 hamming', [2, '3/5', 'hamming'], [0.5, 0.5]], ['regression: N=5 fc=3/5 hamming', [5, '3/5', 'hamming'], [-0.00820621, 0.17925211, 0.65790821, 0.17925211, -0.00820621]], ['control: N=1 fc=1/4 hann', [1, '1/4', 'hann'], [1.0]], ['control: N=1 fc=1/4 rect', [1, '1/4', 'rect'], [1.0]], ['control: N=1 fc=3/5 hamming', [1, '3/5', 'hamming'], [1.0]], ['control: N=1 fc=3/5 hann', [1, '3/5', 'hann'], [1.0]]], [['regression: N=2 fc=1 hamming', [2, '1', 'hamming'], [0.5, 0.5]], ['regression: N=2 fc=1 rect', [2, '1', 'rect'], [0.5, 0.5]], ['regression: N=7 fc=1/2 hamming', [7, '1/2', 'hamming'], [-0.00872183, 0.0, 0.25184279, 0.51375808, 0.25184279, 0.0, -0.00872183]], ['control: N=1 fc=3/5 rect', [1, '3/5', 'rect'], [1.0]], ['control: N=1 fc=1 hamming', [1, '1', 'hamming'], [1.0]], ['control: N=1 fc=1 hann', [1, '1', 'hann'], [1.0]], ['control: N=1 fc=1 rect', [1, '1', 'rect'], [1.0]]], [['regression: N=4 fc=1/2 hann', [4, '1/2', 'hann'], [0.0, 0.5, 0.5, 0.0]], ['regression: N=4 fc=1/2 rect', [4, '1/2', 'rect'], [0.125, 0.375, 0.375, 0.125]], ['regression: N=7 fc=3/5 hamming', [7, '3/5', 'hamming'], [-0.00499814, -0.02905169, 0.2335168, 0.60106606, 0.2335168, -0.02905169, -0.00499814]], ['control: N=5 fc=1 hamming', [5, '1', 'hamming'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=5 fc=1 hann', [5, '1', 'hann'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=5 fc=1 rect', [5, '1', 'rect'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=7 fc=1 hamming', [7, '1', 'hamming'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]]], [['regression: N=4 fc=1/4 hann', [4, '1/4', 'hann'], [0.0, 0.5, 0.5, 0.0]], ['regression: N=4 fc=1/4 rect', [4, '1/4', 'rect'], [0.22295145, 0.27704855, 0.27704855, 0.22295145]], ['regression: N=7 fc=3/5 rect', [7, '3/5', 'rect'], [-0.06978933, -0.104684, 0.33876452, 0.6714176, 0.33876452, -0.104684, -0.06978933]], ['control: N=7 fc=1 hann', [7, '1', 'hann'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]], ['control: N=7 fc=1 rect', [7, '1', 'rect'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]], ['control: N=11 fc=1 hamming', [11, '1', 'hamming'], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]], ['control: N=11 fc=1 hann', [11, '1', 'hann'], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.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":"53a17d741ddda8739e33ff1fcc3d5cba778f91f63ab480a293fc8c0b38cffb11","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    N, fc_s, win = x\n    fc = float(Fraction(fc_s))\n    if N < 1 or not 0 < fc <= 1:\n        return 'bad-spec'\n    c = (N - 1) / 2\n    taps = []\n    for n in range(N):\n        t = n - c\n        s = 1.0 if t == 0 else math.sin(math.pi * fc * t) / (math.pi * fc * t)\n        if N == 1 or win == 'rect':\n            w = 1.0\n        elif win == 'hann':\n            w = 0.5 - 0.5 * math.cos(2 * math.pi * n / (N - 1))\n        else:\n            w = 0.54 - 0.46 * math.cos(2 * math.pi * n / (N - 1))\n        taps.append(fc * s * w)\n    tot = max(taps)\n    return [round(v / tot, 8) + 0.0 for v in taps]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: N=2 fc=1/2 hamming', [2, '1/2', 'hamming'], [0.5, 0.5]], ['regression: N=2 fc=1/2 rect', [2, '1/2', 'rect'], [0.5, 0.5]], ['regression: N=4 fc=1 hamming', [4, '1', 'hamming'], [-0.01793722, 0.51793722, 0.51793722, -0.01793722]], ['control: N=1 fc=1/2 hamming', [1, '1/2', 'hamming'], [1.0]], ['control: N=1 fc=1/2 hann', [1, '1/2', 'hann'], [1.0]], ['control: N=1 fc=1/2 rect', [1, '1/2', 'rect'], [1.0]], ['control: N=1 fc=1/4 hamming', [1, '1/4', 'hamming'], [1.0]]], [['regression: N=2 fc=1/4 rect', [2, '1/4', 'rect'], [0.5, 0.5]], ['regression: N=2 fc=3/5 hamming', [2, '3/5', 'hamming'], [0.5, 0.5]], ['regression: N=5 fc=3/5 hamming', [5, '3/5', 'hamming'], [-0.00820621, 0.17925211, 0.65790821, 0.17925211, -0.00820621]], ['control: N=1 fc=1/4 hann', [1, '1/4', 'hann'], [1.0]], ['control: N=1 fc=1/4 rect', [1, '1/4', 'rect'], [1.0]], ['control: N=1 fc=3/5 hamming', [1, '3/5', 'hamming'], [1.0]], ['control: N=1 fc=3/5 hann', [1, '3/5', 'hann'], [1.0]]], [['regression: N=2 fc=1 hamming', [2, '1', 'hamming'], [0.5, 0.5]], ['regression: N=2 fc=1 rect', [2, '1', 'rect'], [0.5, 0.5]], ['regression: N=7 fc=1/2 hamming', [7, '1/2', 'hamming'], [-0.00872183, 0.0, 0.25184279, 0.51375808, 0.25184279, 0.0, -0.00872183]], ['control: N=1 fc=3/5 rect', [1, '3/5', 'rect'], [1.0]], ['control: N=1 fc=1 hamming', [1, '1', 'hamming'], [1.0]], ['control: N=1 fc=1 hann', [1, '1', 'hann'], [1.0]], ['control: N=1 fc=1 rect', [1, '1', 'rect'], [1.0]]], [['regression: N=4 fc=1/2 hann', [4, '1/2', 'hann'], [0.0, 0.5, 0.5, 0.0]], ['regression: N=4 fc=1/2 rect', [4, '1/2', 'rect'], [0.125, 0.375, 0.375, 0.125]], ['regression: N=7 fc=3/5 hamming', [7, '3/5', 'hamming'], [-0.00499814, -0.02905169, 0.2335168, 0.60106606, 0.2335168, -0.02905169, -0.00499814]], ['control: N=5 fc=1 hamming', [5, '1', 'hamming'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=5 fc=1 hann', [5, '1', 'hann'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=5 fc=1 rect', [5, '1', 'rect'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=7 fc=1 hamming', [7, '1', 'hamming'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]]], [['regression: N=4 fc=1/4 hann', [4, '1/4', 'hann'], [0.0, 0.5, 0.5, 0.0]], ['regression: N=4 fc=1/4 rect', [4, '1/4', 'rect'], [0.22295145, 0.27704855, 0.27704855, 0.22295145]], ['regression: N=7 fc=3/5 rect', [7, '3/5', 'rect'], [-0.06978933, -0.104684, 0.33876452, 0.6714176, 0.33876452, -0.104684, -0.06978933]], ['control: N=7 fc=1 hann', [7, '1', 'hann'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]], ['control: N=7 fc=1 rect', [7, '1', 'rect'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]], ['control: N=11 fc=1 hamming', [11, '1', 'hamming'], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]], ['control: N=11 fc=1 hann', [11, '1', 'hann'], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.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":"c580e011f2186d1034161731802750a56b9f0b5dc80b20b661c320aadf25dc2f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    N, fc_s, win = x\n    fc = float(Fraction(fc_s))\n    if N < 1 or not 0 < fc <= 1:\n        return 'bad-spec'\n    c = (N - 1) / 2\n    taps = []\n    for n in range(N):\n        t = n - c\n        s = 1.0 if t == 0 else math.sin(math.pi * fc * t) / (math.pi * fc * t)\n        if N == 1 or win == 'rect':\n            w = 1.0\n        elif win == 'hann':\n            w = 0.5 - 0.5 * math.cos(2 * math.pi * n / (N - 1))\n        else:\n            w = 0.54 - 0.46 * math.cos(2 * math.pi * n / (N - 1))\n        taps.append(fc * s * w)\n    tot = sum(taps)\n    return [round(v / tot, 8) + 0.0 for v in taps]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: N=2 fc=1/2 hamming', [2, '1/2', 'hamming'], [0.5, 0.5]], ['regression: N=2 fc=1/2 rect', [2, '1/2', 'rect'], [0.5, 0.5]], ['regression: N=4 fc=1 hamming', [4, '1', 'hamming'], [-0.01793722, 0.51793722, 0.51793722, -0.01793722]], ['control: N=1 fc=1/2 hamming', [1, '1/2', 'hamming'], [1.0]], ['control: N=1 fc=1/2 hann', [1, '1/2', 'hann'], [1.0]], ['control: N=1 fc=1/2 rect', [1, '1/2', 'rect'], [1.0]], ['control: N=1 fc=1/4 hamming', [1, '1/4', 'hamming'], [1.0]]], [['regression: N=2 fc=1/4 rect', [2, '1/4', 'rect'], [0.5, 0.5]], ['regression: N=2 fc=3/5 hamming', [2, '3/5', 'hamming'], [0.5, 0.5]], ['regression: N=5 fc=3/5 hamming', [5, '3/5', 'hamming'], [-0.00820621, 0.17925211, 0.65790821, 0.17925211, -0.00820621]], ['control: N=1 fc=1/4 hann', [1, '1/4', 'hann'], [1.0]], ['control: N=1 fc=1/4 rect', [1, '1/4', 'rect'], [1.0]], ['control: N=1 fc=3/5 hamming', [1, '3/5', 'hamming'], [1.0]], ['control: N=1 fc=3/5 hann', [1, '3/5', 'hann'], [1.0]]], [['regression: N=2 fc=1 hamming', [2, '1', 'hamming'], [0.5, 0.5]], ['regression: N=2 fc=1 rect', [2, '1', 'rect'], [0.5, 0.5]], ['regression: N=7 fc=1/2 hamming', [7, '1/2', 'hamming'], [-0.00872183, 0.0, 0.25184279, 0.51375808, 0.25184279, 0.0, -0.00872183]], ['control: N=1 fc=3/5 rect', [1, '3/5', 'rect'], [1.0]], ['control: N=1 fc=1 hamming', [1, '1', 'hamming'], [1.0]], ['control: N=1 fc=1 hann', [1, '1', 'hann'], [1.0]], ['control: N=1 fc=1 rect', [1, '1', 'rect'], [1.0]]], [['regression: N=4 fc=1/2 hann', [4, '1/2', 'hann'], [0.0, 0.5, 0.5, 0.0]], ['regression: N=4 fc=1/2 rect', [4, '1/2', 'rect'], [0.125, 0.375, 0.375, 0.125]], ['regression: N=7 fc=3/5 hamming', [7, '3/5', 'hamming'], [-0.00499814, -0.02905169, 0.2335168, 0.60106606, 0.2335168, -0.02905169, -0.00499814]], ['control: N=5 fc=1 hamming', [5, '1', 'hamming'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=5 fc=1 hann', [5, '1', 'hann'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=5 fc=1 rect', [5, '1', 'rect'], [0.0, 0.0, 1.0, 0.0, 0.0]], ['control: N=7 fc=1 hamming', [7, '1', 'hamming'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]]], [['regression: N=4 fc=1/4 hann', [4, '1/4', 'hann'], [0.0, 0.5, 0.5, 0.0]], ['regression: N=4 fc=1/4 rect', [4, '1/4', 'rect'], [0.22295145, 0.27704855, 0.27704855, 0.22295145]], ['regression: N=7 fc=3/5 rect', [7, '3/5', 'rect'], [-0.06978933, -0.104684, 0.33876452, 0.6714176, 0.33876452, -0.104684, -0.06978933]], ['control: N=7 fc=1 hann', [7, '1', 'hann'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]], ['control: N=7 fc=1 rect', [7, '1', 'rect'], [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0]], ['control: N=11 fc=1 hamming', [11, '1', 'hamming'], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0]], ['control: N=11 fc=1 hann', [11, '1', 'hann'], [0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.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-windowed-sinc-lowpass-dc-gain-normalization","generated_at":"2026-09-29T14:51:36.763102+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Windowed-sinc design is the default FIR recipe; centre or normalization slips yield non-linear-phase or wrong-gain filters.","repair":"Divide by the sum of taps so the DC gain is 1.","root_cause":"Taps are divided by the maximum tap instead of the tap sum.","sha256":"75873dbdb6dbedf8097e49e23e2d8d594729c33d7c4dc7533f47ef6e360ba60f","title":"Windowed sinc normalizes the peak tap to one · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.76,"exit_code":1,"observations":[{"actual":[0.5,0.5],"check":"regression: N=2 fc=1/2 hamming","expected":[0.5,0.5],"passed":true},{"actual":[0.5,0.5],"check":"regression: N=2 fc=1/2 rect","expected":[0.5,0.5],"passed":true},{"actual":[-0.0167364,0.4832636,0.4832636,-0.0167364],"check":"regression: N=4 fc=1 hamming","expected":[-0.01793722,0.51793722,0.51793722,-0.01793722],"passed":false},{"actual":[1.0],"check":"control: N=1 fc=1/2 hamming","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 hann","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 rect","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/4 hamming","expected":[1.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: N=2 fc=1/2 hamming\", \"actual\": [0.5, 0.5], \"expected\": [0.5, 0.5], \"passed\": true}, {\"check\": \"regression: N=2 fc=1/2 rect\", \"actual\": [0.5, 0.5], \"expected\": [0.5, 0.5], \"passed\": true}, {\"check\": \"regression: N=4 fc=1 hamming\", \"actual\": [-0.0167364, 0.4832636, 0.4832636, -0.0167364], \"expected\": [-0.01793722, 0.51793722, 0.51793722, -0.01793722], \"passed\": false}, {\"check\": \"control: N=1 fc=1/2 hamming\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 hann\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 rect\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/4 hamming\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.261,"exit_code":1,"observations":[{"actual":[1.0,1.0],"check":"regression: N=2 fc=1/2 hamming","expected":[0.5,0.5],"passed":false},{"actual":[1.0,1.0],"check":"regression: N=2 fc=1/2 rect","expected":[0.5,0.5],"passed":false},{"actual":[-0.03463203,1.0,1.0,-0.03463203],"check":"regression: N=4 fc=1 hamming","expected":[-0.01793722,0.51793722,0.51793722,-0.01793722],"passed":false},{"actual":[1.0],"check":"control: N=1 fc=1/2 hamming","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 hann","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 rect","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/4 hamming","expected":[1.0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: N=2 fc=1/2 hamming\", \"actual\": [1.0, 1.0], \"expected\": [0.5, 0.5], \"passed\": false}, {\"check\": \"regression: N=2 fc=1/2 rect\", \"actual\": [1.0, 1.0], \"expected\": [0.5, 0.5], \"passed\": false}, {\"check\": \"regression: N=4 fc=1 hamming\", \"actual\": [-0.03463203, 1.0, 1.0, -0.03463203], \"expected\": [-0.01793722, 0.51793722, 0.51793722, -0.01793722], \"passed\": false}, {\"check\": \"control: N=1 fc=1/2 hamming\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 hann\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 rect\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/4 hamming\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.337,"exit_code":0,"observations":[{"actual":[0.5,0.5],"check":"regression: N=2 fc=1/2 hamming","expected":[0.5,0.5],"passed":true},{"actual":[0.5,0.5],"check":"regression: N=2 fc=1/2 rect","expected":[0.5,0.5],"passed":true},{"actual":[-0.01793722,0.51793722,0.51793722,-0.01793722],"check":"regression: N=4 fc=1 hamming","expected":[-0.01793722,0.51793722,0.51793722,-0.01793722],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 hamming","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 hann","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/2 rect","expected":[1.0],"passed":true},{"actual":[1.0],"check":"control: N=1 fc=1/4 hamming","expected":[1.0],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: N=2 fc=1/2 hamming\", \"actual\": [0.5, 0.5], \"expected\": [0.5, 0.5], \"passed\": true}, {\"check\": \"regression: N=2 fc=1/2 rect\", \"actual\": [0.5, 0.5], \"expected\": [0.5, 0.5], \"passed\": true}, {\"check\": \"regression: N=4 fc=1 hamming\", \"actual\": [-0.01793722, 0.51793722, 0.51793722, -0.01793722], \"expected\": [-0.01793722, 0.51793722, 0.51793722, -0.01793722], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 hamming\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 hann\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/2 rect\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}, {\"check\": \"control: N=1 fc=1/4 hamming\", \"actual\": [1.0], \"expected\": [1.0], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}