{"abstract":"A notch that evaluates to 1e-16 due to rounding is reported as about -320 dB with a random phase.","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.","contract_signature":"x","evaluation_group":"w2-digital_signal_filters-frequency-response-db","failed_approach":"The attempted repair uses 1e-3, which also hides legitimate -70 dB attenuation.","family":"w2-digital_signal_filters-frequency-response-db-zero-magnitude-tolerance","id":"FA-91531","implementations":{"attempt":{"sha256":"381616e0be187ba536b07352d18cea3c21cadb6c9263eda7e367159eaf98538c","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-3:\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: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: first difference', [[1, -1], [1], ['0', '1/2', '1']], ['zero', [3.0103, 45.0], [6.0206, 0.0]]], ['control: one pole', [[1], [1, '-1/2'], ['0', '1/4', '1/2']], [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]]], ['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]]]], [['regression: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: 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: random response 1', [[0, -1, 1, 0], [1, '1/3', '1/3'], ['1/2', '3/4', '1/8']], [[5.563, 161.565], [7.5974, 60.22], [-12.1798, -110.508]]], ['control: 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: 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: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: random response 4', [[-1], [1, '1/2'], ['3/4', '1', '0']], [[2.6529, -151.325], [6.0206, -180.0], [-3.5218, 180.0]]], ['control: 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: 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]]], ['control: 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: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: random response 8', [[1, 2, -1, 1], [1, '-1/4', 0], ['1', '1/4', '0']], [[7.6042, -180.0], [7.6969, -45.419], [12.0412, 0.0]]], ['control: random response 9', [[1], [1, '1/2'], ['1', '1/4', '1']], [[6.0206, 0.0], [-2.9161, 14.639], [6.0206, 0.0]]], ['control: random response 10', [[-1, 1], [1], ['1/3', '1', '1/3']], [[0.0, -120.0], [6.0206, -180.0], [0.0, -120.0]]], ['control: random response 11', [[1, 2, 0], [1], ['1/2', '0', '1/8']], [[6.9897, -63.435], [9.5424, 0.0], [9.393, -15.043]]]], [['regression: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: random response 12', [['-1/4'], [1, '1/2', 0], ['1/8', '0', '0']], [[-15.4136, -172.543], [-15.563, 180.0], [-15.563, 180.0]]], ['control: random response 13', [[-1, 2], [1, 0, '1/3'], ['1/2', '1/2', '1/8']], [[10.5115, -116.565], [10.5115, -116.565], [-0.8391, -31.277]]], ['control: random response 14', [[2, '1/2', -1], [1], ['1/8', '1/3', '0']], [[5.2445, 16.379], [8.893, 8.948], [3.5218, 0.0]]], ['control: random response 15', [[0, -1, '1/2', 0], [1], ['0', '1/8', '3/4']], [[-6.0206, 180.0], [-4.8662, 177.076], [2.9161, 59.639]]]]]\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":"111d5585a425921831f6c6f056b206bcf80515b4fbea5251f1bd8283dda9389c","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 == 0:\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: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: first difference', [[1, -1], [1], ['0', '1/2', '1']], ['zero', [3.0103, 45.0], [6.0206, 0.0]]], ['control: one pole', [[1], [1, '-1/2'], ['0', '1/4', '1/2']], [[6.0206, 0.0], [2.6529, -28.675], [-0.9691, -26.565]]], ['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]]]], [['regression: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: 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: random response 1', [[0, -1, 1, 0], [1, '1/3', '1/3'], ['1/2', '3/4', '1/8']], [[5.563, 161.565], [7.5974, 60.22], [-12.1798, -110.508]]], ['control: 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: 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: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: random response 4', [[-1], [1, '1/2'], ['3/4', '1', '0']], [[2.6529, -151.325], [6.0206, -180.0], [-3.5218, 180.0]]], ['control: 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: 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]]], ['control: 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: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: random response 8', [[1, 2, -1, 1], [1, '-1/4', 0], ['1', '1/4', '0']], [[7.6042, -180.0], [7.6969, -45.419], [12.0412, 0.0]]], ['control: random response 9', [[1], [1, '1/2'], ['1', '1/4', '1']], [[6.0206, 0.0], [-2.9161, 14.639], [6.0206, 0.0]]], ['control: random response 10', [[-1, 1], [1], ['1/3', '1', '1/3']], [[0.0, -120.0], [6.0206, -180.0], [0.0, -120.0]]], ['control: random response 11', [[1, 2, 0], [1], ['1/2', '0', '1/8']], [[6.9897, -63.435], [9.5424, 0.0], [9.393, -15.043]]]], [['regression: two-tap average at nyquist', [[1, 1], [1], ['1']], ['zero']], ['regression: deep notch', [[1, 0, 1], [1], ['1/2', '0.49']], ['zero', [-24.0378, -88.2]]], ['repair check: small magnitude', [[1, '-0.9999'], [1], ['0']], [[-80.0, 0.0]]], ['control: random response 12', [['-1/4'], [1, '1/2', 0], ['1/8', '0', '0']], [[-15.4136, -172.543], [-15.563, 180.0], [-15.563, 180.0]]], ['control: random response 13', [[-1, 2], [1, 0, '1/3'], ['1/2', '1/2', '1/8']], [[10.5115, -116.565], [10.5115, -116.565], [-0.8391, -31.277]]], ['control: random response 14', [[2, '1/2', -1], [1], ['1/8', '1/3', '0']], [[5.2445, 16.379], [8.893, 8.948], [3.5218, 0.0]]], ['control: random response 15', [[0, -1, '1/2', 0], [1], ['0', '1/8', '3/4']], [[-6.0206, 180.0], [-4.8662, 177.076], [2.9161, 59.639]]]]]\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-zero-magnitude-tolerance","generated_at":"2026-09-29T14:51:36.930701+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.","root_cause":"The zero test compares the magnitude with == 0.","sha256":"47537a0271164dd0c8733db3273c42a64a8d8e62811fccfe742b7eccb0d77a51","title":"Frequency response only reports exact zeros · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.097,"exit_code":1,"observations":[{"actual":["zero"],"check":"regression: two-tap average at nyquist","expected":["zero"],"passed":true},{"actual":["zero",[-24.0378,-88.2]],"check":"regression: deep notch","expected":["zero",[-24.0378,-88.2]],"passed":true},{"actual":["zero"],"check":"repair check: small magnitude","expected":[[-80.0,0.0]],"passed":false},{"actual":["zero",[3.0103,45.0],[6.0206,0.0]],"check":"control: 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":"control: one pole","expected":[[6.0206,0.0],[2.6529,-28.675],[-0.9691,-26.565]],"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}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: two-tap average at nyquist\", \"actual\": [\"zero\"], \"expected\": [\"zero\"], \"passed\": true}, {\"check\": \"regression: deep notch\", \"actual\": [\"zero\", [-24.0378, -88.2]], \"expected\": [\"zero\", [-24.0378, -88.2]], \"passed\": true}, {\"check\": \"repair check: small magnitude\", \"actual\": [\"zero\"], \"expected\": [[-80.0, 0.0]], \"passed\": false}, {\"check\": \"control: 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\": \"control: 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\": \"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}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.245,"exit_code":1,"observations":[{"actual":[[-318.2398,-90.0]],"check":"regression: two-tap average at nyquist","expected":["zero"],"passed":false},{"actual":[[-318.2398,-90.0],[-24.0378,-88.2]],"check":"regression: deep notch","expected":["zero",[-24.0378,-88.2]],"passed":false},{"actual":[[-80.0,0.0]],"check":"repair check: small magnitude","expected":[[-80.0,0.0]],"passed":true},{"actual":["zero",[3.0103,45.0],[6.0206,0.0]],"check":"control: 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":"control: one pole","expected":[[6.0206,0.0],[2.6529,-28.675],[-0.9691,-26.565]],"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}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: two-tap average at nyquist\", \"actual\": [[-318.2398, -90.0]], \"expected\": [\"zero\"], \"passed\": false}, {\"check\": \"regression: deep notch\", \"actual\": [[-318.2398, -90.0], [-24.0378, -88.2]], \"expected\": [\"zero\", [-24.0378, -88.2]], \"passed\": false}, {\"check\": \"repair check: small magnitude\", \"actual\": [[-80.0, 0.0]], \"expected\": [[-80.0, 0.0]], \"passed\": true}, {\"check\": \"control: 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\": \"control: 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\": \"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}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}