{"abstract":"A gain of 2 is reported as 3.01 dB instead of 6.02 dB.","category":"Digital signal filters","checks":7,"contract":"Input [b, a, freqs]; coefficients and frequencies are numbers or rational strings, frequencies are fractions of Nyquist. For w = pi f evaluate H = B(e^{jw})/A(e^{jw}) with z^-k = e^{-jwk}; return per frequency [20 log10 |H| rounded to 4, phase in degrees rounded to 3], \"pole\" if |A| < 1e-12, \"zero\" if |H| < 1e-9.","evaluation_group":"w2-digital_signal_filters-frequency-response-db","failed_approach":"The attempted repair uses 20 log10 |H|^2, doubling the decibel values.","family":"w2-digital_signal_filters-frequency-response-db-decibel-factor","id":"FA-91521","implementations":{"attempt":{"sha256":"78a9309e36cf78b9e31249803eeb61616c5947de35713464cce8f1e0428bde66","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport cmath\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    b, a, fs = x\n    b = [float(Fraction(v)) for v in b]\n    a = [float(Fraction(v)) for v in a]\n    out = []\n    for f in fs:\n        w = math.pi * float(Fraction(f))\n        B = sum(c * cmath.exp(-1j * w * k) for k, c in enumerate(b))\n        A = sum(c * cmath.exp(-1j * w * k) for k, c in enumerate(a))\n        if abs(A) < 1e-12:\n            out.append('pole')\n            continue\n        H = B / A\n        mag = abs(H)\n        if mag < 1e-9:\n            out.append('zero')\n            continue\n        out.append([round(20 * math.log10(mag ** 2), 4) + 0.0, round(math.degrees(cmath.phase(H)), 3) + 0.0])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: first difference', [[1, -1], [1], ['0', '1/2', '1']], ['zero', [3.0103, 45.0], [6.0206, 0.0]]], ['regression: one pole', [[1], [1, '-1/2'], ['0', '1/4', '1/2']], [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]]], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['regression: random response 0', [['-1/4', 1], [1, 0], ['1/3', '1/8', '1/8']], [[-0.9018, -73.898], [-2.2144, -29.591], [-2.2144, -29.591]]], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 2', [['1/2', '-1/4', 0, 2], [1, '1/2', '1/2'], ['1/2', '1/2', '1/2']], [[10.2633, 122.471], [10.2633, 122.471], [10.2633, 122.471]]], ['regression: random response 4', [[-1], [1, '1/2'], ['3/4', '1', '0']], [[2.6529, -151.325], [6.0206, -180.0], [-3.5218, 180.0]]], ['regression: random response 0', [['-1/4', 1], [1, 0], ['1/3', '1/8', '1/8']], [[-0.9018, -73.898], [-2.2144, -29.591], [-2.2144, -29.591]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 6', [[1, -1], [1, '1/3', '1/3'], ['1/8', '1', '1/2']], [[-12.1798, 91.992], [6.0206, 0.0], [5.563, 71.565]]], ['regression: random response 7', [[2, -1], [1, '1/2'], ['3/4', '1/3', '1/3']], [[11.5896, 43.314], [2.3408, 49.107], [2.3408, 49.107]]], ['regression: random response 2', [['1/2', '-1/4', 0, 2], [1, '1/2', '1/2'], ['1/2', '1/2', '1/2']], [[10.2633, 122.471], [10.2633, 122.471], [10.2633, 122.471]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 9', [[1], [1, '1/2'], ['1', '1/4', '1']], [[6.0206, 0.0], [-2.9161, 14.639], [6.0206, 0.0]]], ['regression: random response 10', [[-1, 1], [1], ['1/3', '1', '1/3']], [[0.0, -120.0], [6.0206, -180.0], [0.0, -120.0]]], ['regression: random response 5', [[1], [1, '1/2', '1/2'], ['1/4', '1', '1/8']], [[-4.0835, 32.236], [0.0, 0.0], [-5.5545, 16.706]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.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":"6a63025981b4ddb66d66f9af62027c723f5355e3d9538869dbfff660cb0e4a32","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport cmath\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    b, a, fs = x\n    b = [float(Fraction(v)) for v in b]\n    a = [float(Fraction(v)) for v in a]\n    out = []\n    for f in fs:\n        w = math.pi * float(Fraction(f))\n        B = sum(c * cmath.exp(-1j * w * k) for k, c in enumerate(b))\n        A = sum(c * cmath.exp(-1j * w * k) for k, c in enumerate(a))\n        if abs(A) < 1e-12:\n            out.append('pole')\n            continue\n        H = B / A\n        mag = abs(H)\n        if mag < 1e-9:\n            out.append('zero')\n            continue\n        out.append([round(10 * math.log10(mag), 4) + 0.0, round(math.degrees(cmath.phase(H)), 3) + 0.0])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: first difference', [[1, -1], [1], ['0', '1/2', '1']], ['zero', [3.0103, 45.0], [6.0206, 0.0]]], ['regression: one pole', [[1], [1, '-1/2'], ['0', '1/4', '1/2']], [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]]], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['regression: random response 0', [['-1/4', 1], [1, 0], ['1/3', '1/8', '1/8']], [[-0.9018, -73.898], [-2.2144, -29.591], [-2.2144, -29.591]]], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 2', [['1/2', '-1/4', 0, 2], [1, '1/2', '1/2'], ['1/2', '1/2', '1/2']], [[10.2633, 122.471], [10.2633, 122.471], [10.2633, 122.471]]], ['regression: random response 4', [[-1], [1, '1/2'], ['3/4', '1', '0']], [[2.6529, -151.325], [6.0206, -180.0], [-3.5218, 180.0]]], ['regression: random response 0', [['-1/4', 1], [1, 0], ['1/3', '1/8', '1/8']], [[-0.9018, -73.898], [-2.2144, -29.591], [-2.2144, -29.591]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 6', [[1, -1], [1, '1/3', '1/3'], ['1/8', '1', '1/2']], [[-12.1798, 91.992], [6.0206, 0.0], [5.563, 71.565]]], ['regression: random response 7', [[2, -1], [1, '1/2'], ['3/4', '1/3', '1/3']], [[11.5896, 43.314], [2.3408, 49.107], [2.3408, 49.107]]], ['regression: random response 2', [['1/2', '-1/4', 0, 2], [1, '1/2', '1/2'], ['1/2', '1/2', '1/2']], [[10.2633, 122.471], [10.2633, 122.471], [10.2633, 122.471]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 9', [[1], [1, '1/2'], ['1', '1/4', '1']], [[6.0206, 0.0], [-2.9161, 14.639], [6.0206, 0.0]]], ['regression: random response 10', [[-1, 1], [1], ['1/3', '1', '1/3']], [[0.0, -120.0], [6.0206, -180.0], [0.0, -120.0]]], ['regression: random response 5', [[1], [1, '1/2', '1/2'], ['1/4', '1', '1/8']], [[-4.0835, 32.236], [0.0, 0.0], [-5.5545, 16.706]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.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":"86f08a8ecf434ce787c710f602d5bf5e786bc0acea7ae79cd57215e63e7a8991","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nimport cmath\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    b, a, fs = x\n    b = [float(Fraction(v)) for v in b]\n    a = [float(Fraction(v)) for v in a]\n    out = []\n    for f in fs:\n        w = math.pi * float(Fraction(f))\n        B = sum(c * cmath.exp(-1j * w * k) for k, c in enumerate(b))\n        A = sum(c * cmath.exp(-1j * w * k) for k, c in enumerate(a))\n        if abs(A) < 1e-12:\n            out.append('pole')\n            continue\n        H = B / A\n        mag = abs(H)\n        if mag < 1e-9:\n            out.append('zero')\n            continue\n        out.append([round(20 * math.log10(mag), 4) + 0.0, round(math.degrees(cmath.phase(H)), 3) + 0.0])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: first difference', [[1, -1], [1], ['0', '1/2', '1']], ['zero', [3.0103, 45.0], [6.0206, 0.0]]], ['regression: one pole', [[1], [1, '-1/2'], ['0', '1/4', '1/2']], [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]]], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['regression: random response 0', [['-1/4', 1], [1, 0], ['1/3', '1/8', '1/8']], [[-0.9018, -73.898], [-2.2144, -29.591], [-2.2144, -29.591]]], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 2', [['1/2', '-1/4', 0, 2], [1, '1/2', '1/2'], ['1/2', '1/2', '1/2']], [[10.2633, 122.471], [10.2633, 122.471], [10.2633, 122.471]]], ['regression: random response 4', [[-1], [1, '1/2'], ['3/4', '1', '0']], [[2.6529, -151.325], [6.0206, -180.0], [-3.5218, 180.0]]], ['regression: random response 0', [['-1/4', 1], [1, 0], ['1/3', '1/8', '1/8']], [[-0.9018, -73.898], [-2.2144, -29.591], [-2.2144, -29.591]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 6', [[1, -1], [1, '1/3', '1/3'], ['1/8', '1', '1/2']], [[-12.1798, 91.992], [6.0206, 0.0], [5.563, 71.565]]], ['regression: random response 7', [[2, -1], [1, '1/2'], ['3/4', '1/3', '1/3']], [[11.5896, 43.314], [2.3408, 49.107], [2.3408, 49.107]]], ['regression: random response 2', [['1/2', '-1/4', 0, 2], [1, '1/2', '1/2'], ['1/2', '1/2', '1/2']], [[10.2633, 122.471], [10.2633, 122.471], [10.2633, 122.471]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]]]], [['regression: random response 9', [[1], [1, '1/2'], ['1', '1/4', '1']], [[6.0206, 0.0], [-2.9161, 14.639], [6.0206, 0.0]]], ['regression: random response 10', [[-1, 1], [1], ['1/3', '1', '1/3']], [[0.0, -120.0], [6.0206, -180.0], [0.0, -120.0]]], ['regression: random response 5', [[1], [1, '1/2', '1/2'], ['1/4', '1', '1/8']], [[-4.0835, 32.236], [0.0, 0.0], [-5.5545, 16.706]]], ['control: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['control: pole on unit circle', [[1], [1, -1], ['0']], ['pole']], ['control: pure delay phase', [[0, 1], [1], ['1/4', '1/2']], [[0.0, -45.0], [0.0, -90.0]]], ['control: random response 3', [[0, 0, -1], [1], ['1/2', '1/8', '1']], [[0.0, 0.0], [0.0, 135.0], [0.0, -180.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-frequency-response-db-decibel-factor","generated_at":"2026-09-29T14:51:36.806482+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Magnitude and phase plots are how filters are verified; unit or sign slips misreport cutoff and delay.","repair":"Use 20 log10 |H| for amplitude.","root_cause":"10 log10 is applied to an amplitude ratio.","sha256":"ebccf44172177ddab3a3dc9f4750bdbbb96bd3e409e029108265c5a43bebed1c","title":"Frequency response reports magnitude with the power decibel factor · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.612,"exit_code":1,"observations":[{"actual":["zero",[6.0206,45.0],[12.0412,0.0]],"check":"regression: first difference","expected":["zero",[3.0103,45.0],[6.0206,0.0]],"passed":false},{"actual":[[12.0412,0.0],[5.3057,-28.675],[-1.9382,-26.565]],"check":"regression: one pole","expected":[[6.0206,0.0],[2.6529,-28.675],[-0.9691,-26.565]],"passed":false},{"actual":["zero",[-48.0757,-88.2]],"check":"regression: deep notch","expected":["zero",[-24.0378,-88.2]],"passed":false},{"actual":["zero"],"check":"control: two-tap average at nyquist","expected":["zero"],"passed":true},{"actual":["pole"],"check":"control: pole on unit circle","expected":["pole"],"passed":true},{"actual":[[0.0,-45.0],[0.0,-90.0]],"check":"control: pure delay phase","expected":[[0.0,-45.0],[0.0,-90.0]],"passed":true},{"actual":[[0.0,0.0],[0.0,135.0],[0.0,-180.0]],"check":"control: random response 3","expected":[[0.0,0.0],[0.0,135.0],[0.0,-180.0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: first difference\", \"actual\": [\"zero\", [6.0206, 45.0], [12.0412, 0.0]], \"expected\": [\"zero\", [3.0103, 45.0], [6.0206, 0.0]], \"passed\": false}, {\"check\": \"regression: one pole\", \"actual\": [[12.0412, 0.0], [5.3057, -28.675], [-1.9382, -26.565]], \"expected\": [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]], \"passed\": false}, {\"check\": \"regression: deep notch\", \"actual\": [\"zero\", [-48.0757, -88.2]], \"expected\": [\"zero\", [-24.0378, -88.2]], \"passed\": false}, {\"check\": \"control: two-tap average at nyquist\", \"actual\": [\"zero\"], \"expected\": [\"zero\"], \"passed\": true}, {\"check\": \"control: pole on unit circle\", \"actual\": [\"pole\"], \"expected\": [\"pole\"], \"passed\": true}, {\"check\": \"control: pure delay phase\", \"actual\": [[0.0, -45.0], [0.0, -90.0]], \"expected\": [[0.0, -45.0], [0.0, -90.0]], \"passed\": true}, {\"check\": \"control: random response 3\", \"actual\": [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]], \"expected\": [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.963,"exit_code":1,"observations":[{"actual":["zero",[1.5051,45.0],[3.0103,0.0]],"check":"regression: first difference","expected":["zero",[3.0103,45.0],[6.0206,0.0]],"passed":false},{"actual":[[3.0103,0.0],[1.3264,-28.675],[-0.4846,-26.565]],"check":"regression: one pole","expected":[[6.0206,0.0],[2.6529,-28.675],[-0.9691,-26.565]],"passed":false},{"actual":["zero",[-12.0189,-88.2]],"check":"regression: deep notch","expected":["zero",[-24.0378,-88.2]],"passed":false},{"actual":["zero"],"check":"control: two-tap average at nyquist","expected":["zero"],"passed":true},{"actual":["pole"],"check":"control: pole on unit circle","expected":["pole"],"passed":true},{"actual":[[0.0,-45.0],[0.0,-90.0]],"check":"control: pure delay phase","expected":[[0.0,-45.0],[0.0,-90.0]],"passed":true},{"actual":[[0.0,0.0],[0.0,135.0],[0.0,-180.0]],"check":"control: random response 3","expected":[[0.0,0.0],[0.0,135.0],[0.0,-180.0]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: first difference\", \"actual\": [\"zero\", [1.5051, 45.0], [3.0103, 0.0]], \"expected\": [\"zero\", [3.0103, 45.0], [6.0206, 0.0]], \"passed\": false}, {\"check\": \"regression: one pole\", \"actual\": [[3.0103, 0.0], [1.3264, -28.675], [-0.4846, -26.565]], \"expected\": [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]], \"passed\": false}, {\"check\": \"regression: deep notch\", \"actual\": [\"zero\", [-12.0189, -88.2]], \"expected\": [\"zero\", [-24.0378, -88.2]], \"passed\": false}, {\"check\": \"control: two-tap average at nyquist\", \"actual\": [\"zero\"], \"expected\": [\"zero\"], \"passed\": true}, {\"check\": \"control: pole on unit circle\", \"actual\": [\"pole\"], \"expected\": [\"pole\"], \"passed\": true}, {\"check\": \"control: pure delay phase\", \"actual\": [[0.0, -45.0], [0.0, -90.0]], \"expected\": [[0.0, -45.0], [0.0, -90.0]], \"passed\": true}, {\"check\": \"control: random response 3\", \"actual\": [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]], \"expected\": [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.58,"exit_code":0,"observations":[{"actual":["zero",[3.0103,45.0],[6.0206,0.0]],"check":"regression: first difference","expected":["zero",[3.0103,45.0],[6.0206,0.0]],"passed":true},{"actual":[[6.0206,0.0],[2.6529,-28.675],[-0.9691,-26.565]],"check":"regression: one pole","expected":[[6.0206,0.0],[2.6529,-28.675],[-0.9691,-26.565]],"passed":true},{"actual":["zero",[-24.0378,-88.2]],"check":"regression: deep notch","expected":["zero",[-24.0378,-88.2]],"passed":true},{"actual":["zero"],"check":"control: two-tap average at nyquist","expected":["zero"],"passed":true},{"actual":["pole"],"check":"control: pole on unit circle","expected":["pole"],"passed":true},{"actual":[[0.0,-45.0],[0.0,-90.0]],"check":"control: pure delay phase","expected":[[0.0,-45.0],[0.0,-90.0]],"passed":true},{"actual":[[0.0,0.0],[0.0,135.0],[0.0,-180.0]],"check":"control: random response 3","expected":[[0.0,0.0],[0.0,135.0],[0.0,-180.0]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: first difference\", \"actual\": [\"zero\", [3.0103, 45.0], [6.0206, 0.0]], \"expected\": [\"zero\", [3.0103, 45.0], [6.0206, 0.0]], \"passed\": true}, {\"check\": \"regression: one pole\", \"actual\": [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]], \"expected\": [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]], \"passed\": true}, {\"check\": \"regression: deep notch\", \"actual\": [\"zero\", [-24.0378, -88.2]], \"expected\": [\"zero\", [-24.0378, -88.2]], \"passed\": true}, {\"check\": \"control: two-tap average at nyquist\", \"actual\": [\"zero\"], \"expected\": [\"zero\"], \"passed\": true}, {\"check\": \"control: pole on unit circle\", \"actual\": [\"pole\"], \"expected\": [\"pole\"], \"passed\": true}, {\"check\": \"control: pure delay phase\", \"actual\": [[0.0, -45.0], [0.0, -90.0]], \"expected\": [[0.0, -45.0], [0.0, -90.0]], \"passed\": true}, {\"check\": \"control: random response 3\", \"actual\": [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]], \"expected\": [[0.0, 0.0], [0.0, 135.0], [0.0, -180.0]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}