{"abstract":"A 50 Hz notch at 1 kHz sampling attenuates 25 Hz instead.","category":"Digital signal filters","checks":7,"contract":"Input [f0, fs, r]: second-order notch with zeros on the unit circle at +-w0 (w0 = 2 pi f0 / fs) and poles at radius r: b = [1, -2 cos w0, 1], a = [1, -2 r cos w0, r^2]; b is scaled for unity DC gain (sum(a)/sum(b)). Coefficients rounded to 9 decimals; \"bad-frequency\" unless 0 < f0 < fs/2, \"bad-radius\" unless 0 <= r < 1.","evaluation_group":"w2-digital_signal_filters-iir-notch-design","failed_approach":"The attempted repair divides by the Nyquist rate as well as multiplying by 2 pi, doubling the frequency.","family":"w2-digital_signal_filters-iir-notch-design-notch-angular-frequency","id":"FA-91806","implementations":{"attempt":{"sha256":"5ebd7e02323dd09a6f96d512fcea6f80fdd9d9cdef74d5ed647bab5b5b735f3a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    f0, fs, r = Fraction(x[0]), Fraction(x[1]), Fraction(x[2])\n    if not 0 < f0 < fs / 2:\n        return 'bad-frequency'\n    if not 0 <= r < 1:\n        return 'bad-radius'\n    w0 = 2 * math.pi * float(f0 / (fs / 2))\n    c = math.cos(w0)\n    b = [1.0, -2 * c, 1.0]\n    a = [1.0, -2 * float(r) * c, float(r * r)]\n    g = sum(a) / sum(b)\n    return {'b': [round(g * v, 9) + 0.0 for v in b], 'a': [round(v, 9) + 0.0 for v in a]}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: f0=50 fs=1000 r=0', ['50', '1000', '0'], {'b': [10.215864547, -19.431729095, 10.215864547], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=50 fs=1000 r=9/10', ['50', '1000', '9/10'], {'b': [1.002158645, -1.90621902, 1.002158645], 'a': [1.0, -1.711901729, 0.81]}], ['regression: f0=50 fs=1000 r=1/2', ['50', '1000', '1/2'], {'b': [3.053966137, -5.80898879, 3.053966137], 'a': [1.0, -0.951056516, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}]], [['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=50 fs=1000 r=1/2', ['50', '1000', '1/2'], {'b': [3.053966137, -5.80898879, 3.053966137], 'a': [1.0, -0.951056516, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}]], [['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['regression: f0=60 fs=480 r=99/100', ['60', '480', '99/100'], {'b': [0.990170711, -1.400312848, 0.990170711], 'a': [1.0, -1.400071427, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}]], [['regression: f0=1 fs=8 r=9/10', ['1', '8', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=1 fs=8 r=1/2', ['1', '8', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}]], [['regression: f0=3 fs=8 r=0', ['3', '8', '0'], {'b': [0.292893219, 0.414213562, 0.292893219], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=3 fs=8 r=9/10', ['3', '8', '9/10'], {'b': [0.902928932, 1.276934342, 0.902928932], 'a': [1.0, 1.272792206, 0.81]}], ['regression: f0=1 fs=8 r=0', ['1', '8', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}]]]\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":"d382cca2d1a94188206a4b016947a6d0f61a21459a44ea313287be3078c1ee86","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    f0, fs, r = Fraction(x[0]), Fraction(x[1]), Fraction(x[2])\n    if not 0 < f0 < fs / 2:\n        return 'bad-frequency'\n    if not 0 <= r < 1:\n        return 'bad-radius'\n    w0 = math.pi * float(f0 / fs)\n    c = math.cos(w0)\n    b = [1.0, -2 * c, 1.0]\n    a = [1.0, -2 * float(r) * c, float(r * r)]\n    g = sum(a) / sum(b)\n    return {'b': [round(g * v, 9) + 0.0 for v in b], 'a': [round(v, 9) + 0.0 for v in a]}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: f0=50 fs=1000 r=0', ['50', '1000', '0'], {'b': [10.215864547, -19.431729095, 10.215864547], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=50 fs=1000 r=9/10', ['50', '1000', '9/10'], {'b': [1.002158645, -1.90621902, 1.002158645], 'a': [1.0, -1.711901729, 0.81]}], ['regression: f0=50 fs=1000 r=1/2', ['50', '1000', '1/2'], {'b': [3.053966137, -5.80898879, 3.053966137], 'a': [1.0, -0.951056516, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}]], [['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=50 fs=1000 r=1/2', ['50', '1000', '1/2'], {'b': [3.053966137, -5.80898879, 3.053966137], 'a': [1.0, -0.951056516, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}]], [['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['regression: f0=60 fs=480 r=99/100', ['60', '480', '99/100'], {'b': [0.990170711, -1.400312848, 0.990170711], 'a': [1.0, -1.400071427, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}]], [['regression: f0=1 fs=8 r=9/10', ['1', '8', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=1 fs=8 r=1/2', ['1', '8', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}]], [['regression: f0=3 fs=8 r=0', ['3', '8', '0'], {'b': [0.292893219, 0.414213562, 0.292893219], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=3 fs=8 r=9/10', ['3', '8', '9/10'], {'b': [0.902928932, 1.276934342, 0.902928932], 'a': [1.0, 1.272792206, 0.81]}], ['regression: f0=1 fs=8 r=0', ['1', '8', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}]]]\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":"190b3fbe490ec9f03ef979b23d6f6cbcfd9b49bcbb003979f018c924c932c186","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    f0, fs, r = Fraction(x[0]), Fraction(x[1]), Fraction(x[2])\n    if not 0 < f0 < fs / 2:\n        return 'bad-frequency'\n    if not 0 <= r < 1:\n        return 'bad-radius'\n    w0 = 2 * math.pi * float(f0 / fs)\n    c = math.cos(w0)\n    b = [1.0, -2 * c, 1.0]\n    a = [1.0, -2 * float(r) * c, float(r * r)]\n    g = sum(a) / sum(b)\n    return {'b': [round(g * v, 9) + 0.0 for v in b], 'a': [round(v, 9) + 0.0 for v in a]}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: f0=50 fs=1000 r=0', ['50', '1000', '0'], {'b': [10.215864547, -19.431729095, 10.215864547], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=50 fs=1000 r=9/10', ['50', '1000', '9/10'], {'b': [1.002158645, -1.90621902, 1.002158645], 'a': [1.0, -1.711901729, 0.81]}], ['regression: f0=50 fs=1000 r=1/2', ['50', '1000', '1/2'], {'b': [3.053966137, -5.80898879, 3.053966137], 'a': [1.0, -0.951056516, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}]], [['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=50 fs=1000 r=1/2', ['50', '1000', '1/2'], {'b': [3.053966137, -5.80898879, 3.053966137], 'a': [1.0, -0.951056516, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}]], [['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['regression: f0=60 fs=480 r=99/100', ['60', '480', '99/100'], {'b': [0.990170711, -1.400312848, 0.990170711], 'a': [1.0, -1.400071427, 0.9801]}], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=50 fs=1000 r=99/100', ['50', '1000', '99/100'], {'b': [0.991021586, -1.885035075, 0.991021586], 'a': [1.0, -1.883091902, 0.9801]}], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}]], [['regression: f0=1 fs=8 r=9/10', ['1', '8', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=1 fs=8 r=1/2', ['1', '8', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=0', ['60', '480', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}]], [['regression: f0=3 fs=8 r=0', ['3', '8', '0'], {'b': [0.292893219, 0.414213562, 0.292893219], 'a': [1.0, 0.0, 0.0]}], ['regression: f0=3 fs=8 r=9/10', ['3', '8', '9/10'], {'b': [0.902928932, 1.276934342, 0.902928932], 'a': [1.0, 1.272792206, 0.81]}], ['regression: f0=1 fs=8 r=0', ['1', '8', '0'], {'b': [1.707106781, -2.414213562, 1.707106781], 'a': [1.0, 0.0, 0.0]}], ['control: at nyquist', ['4', '8', '1/2'], 'bad-frequency'], ['control: bad radius', ['1', '8', '1'], 'bad-radius'], ['regression: f0=60 fs=480 r=9/10', ['60', '480', '9/10'], {'b': [0.917071068, -1.296934342, 0.917071068], 'a': [1.0, -1.272792206, 0.81]}], ['regression: f0=60 fs=480 r=1/2', ['60', '480', '1/2'], {'b': [0.926776695, -1.310660172, 0.926776695], 'a': [1.0, -0.707106781, 0.25]}]]]\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-iir-notch-design-notch-angular-frequency","generated_at":"2026-09-29T14:51:39.456337+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Notch filters remove mains hum and interference tones; angle or radius slips miss the tone or widen the notch.","repair":"Use w0 = 2 pi f0 / fs.","root_cause":"w0 is computed as pi f0 / fs.","sha256":"b7e35983a716effe794e1a670fd905c1d46aae77f392bbf52ca39969687c952f","title":"Notch design places the zeros at half the tone frequency · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.177,"exit_code":1,"observations":[{"actual":{"a":[1.0,0.0,0.0],"b":[2.618033989,-4.236067977,2.618033989]},"check":"regression: f0=50 fs=1000 r=0","expected":{"a":[1.0,0.0,0.0],"b":[10.215864547,-19.431729095,10.215864547]},"passed":false},{"actual":{"a":[1.0,-1.45623059,0.81],"b":[0.92618034,-1.49859127,0.92618034]},"check":"regression: f0=50 fs=1000 r=9/10","expected":{"a":[1.0,-1.711901729,0.81],"b":[1.002158645,-1.90621902,1.002158645]},"passed":false},{"actual":{"a":[1.0,-0.809016994,0.25],"b":[1.154508497,-1.868033989,1.154508497]},"check":"regression: f0=50 fs=1000 r=1/2","expected":{"a":[1.0,-0.951056516,0.25],"b":[3.053966137,-5.80898879,3.053966137]},"passed":false},{"actual":"bad-frequency","check":"control: at nyquist","expected":"bad-frequency","passed":true},{"actual":"bad-radius","check":"control: bad radius","expected":"bad-radius","passed":true},{"actual":{"a":[1.0,-1.601853649,0.9801],"b":[0.990261803,-1.602277256,0.990261803]},"check":"regression: f0=50 fs=1000 r=99/100","expected":{"a":[1.0,-1.883091902,0.9801],"b":[0.991021586,-1.885035075,0.991021586]},"passed":false},{"actual":{"a":[1.0,0.0,0.0],"b":[0.5,0.0,0.5]},"check":"regression: f0=60 fs=480 r=0","expected":{"a":[1.0,0.0,0.0],"b":[1.707106781,-2.414213562,1.707106781]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: f0=50 fs=1000 r=0\", \"actual\": {\"b\": [2.618033989, -4.236067977, 2.618033989], \"a\": [1.0, 0.0, 0.0]}, \"expected\": {\"b\": [10.215864547, -19.431729095, 10.215864547], \"a\": [1.0, 0.0, 0.0]}, \"passed\": false}, {\"check\": \"regression: f0=50 fs=1000 r=9/10\", \"actual\": {\"b\": [0.92618034, -1.49859127, 0.92618034], \"a\": [1.0, -1.45623059, 0.81]}, \"expected\": {\"b\": [1.002158645, -1.90621902, 1.002158645], \"a\": [1.0, -1.711901729, 0.81]}, \"passed\": false}, {\"check\": \"regression: f0=50 fs=1000 r=1/2\", \"actual\": {\"b\": [1.154508497, -1.868033989, 1.154508497], \"a\": [1.0, -0.809016994, 0.25]}, \"expected\": {\"b\": [3.053966137, -5.80898879, 3.053966137], \"a\": [1.0, -0.951056516, 0.25]}, \"passed\": false}, {\"check\": \"control: at nyquist\", \"actual\": \"bad-frequency\", \"expected\": \"bad-frequency\", \"passed\": true}, {\"check\": \"control: bad radius\", \"actual\": \"bad-radius\", \"expected\": \"bad-radius\", \"passed\": true}, {\"check\": \"regression: f0=50 fs=1000 r=99/100\", \"actual\": {\"b\": [0.990261803, -1.602277256, 0.990261803], \"a\": [1.0, -1.601853649, 0.9801]}, \"expected\": {\"b\": [0.991021586, -1.885035075, 0.991021586], \"a\": [1.0, -1.883091902, 0.9801]}, \"passed\": false}, {\"check\": \"regression: f0=60 fs=480 r=0\", \"actual\": {\"b\": [0.5, 0.0, 0.5], \"a\": [1.0, 0.0, 0.0]}, \"expected\": {\"b\": [1.707106781, -2.414213562, 1.707106781], \"a\": [1.0, 0.0, 0.0]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.211,"exit_code":1,"observations":[{"actual":{"a":[1.0,0.0,0.0],"b":[40.611909699,-80.223819399,40.611909699]},"check":"regression: f0=50 fs=1000 r=0","expected":{"a":[1.0,0.0,0.0],"b":[10.215864547,-19.431729095,10.215864547]},"passed":false},{"actual":{"a":[1.0,-1.777839013,0.81],"b":[1.306119097,-2.580077207,1.306119097]},"check":"regression: f0=50 fs=1000 r=9/10","expected":{"a":[1.0,-1.711901729,0.81],"b":[1.002158645,-1.90621902,1.002158645]},"passed":false},{"actual":{"a":[1.0,-0.987688341,0.25],"b":[10.652977425,-21.04364319,10.652977425]},"check":"regression: f0=50 fs=1000 r=1/2","expected":{"a":[1.0,-0.951056516,0.25],"b":[3.053966137,-5.80898879,3.053966137]},"passed":false},{"actual":"bad-frequency","check":"control: at nyquist","expected":"bad-frequency","passed":true},{"actual":"bad-radius","check":"control: bad radius","expected":"bad-radius","passed":true},{"actual":{"a":[1.0,-1.955622914,0.9801],"b":[0.994061191,-1.963645296,0.994061191]},"check":"regression: f0=50 fs=1000 r=99/100","expected":{"a":[1.0,-1.883091902,0.9801],"b":[0.991021586,-1.885035075,0.991021586]},"passed":false},{"actual":{"a":[1.0,0.0,0.0],"b":[6.568535592,-12.137071185,6.568535592]},"check":"regression: f0=60 fs=480 r=0","expected":{"a":[1.0,0.0,0.0],"b":[1.707106781,-2.414213562,1.707106781]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: f0=50 fs=1000 r=0\", \"actual\": {\"b\": [40.611909699, -80.223819399, 40.611909699], \"a\": [1.0, 0.0, 0.0]}, \"expected\": {\"b\": [10.215864547, -19.431729095, 10.215864547], \"a\": [1.0, 0.0, 0.0]}, \"passed\": false}, {\"check\": \"regression: f0=50 fs=1000 r=9/10\", \"actual\": {\"b\": [1.306119097, -2.580077207, 1.306119097], \"a\": [1.0, -1.777839013, 0.81]}, \"expected\": {\"b\": [1.002158645, -1.90621902, 1.002158645], \"a\": [1.0, -1.711901729, 0.81]}, \"passed\": false}, {\"check\": \"regression: f0=50 fs=1000 r=1/2\", \"actual\": {\"b\": [10.652977425, -21.04364319, 10.652977425], \"a\": [1.0, -0.987688341, 0.25]}, \"expected\": {\"b\": [3.053966137, -5.80898879, 3.053966137], \"a\": [1.0, -0.951056516, 0.25]}, \"passed\": false}, {\"check\": \"control: at nyquist\", \"actual\": \"bad-frequency\", \"expected\": \"bad-frequency\", \"passed\": true}, {\"check\": \"control: bad radius\", \"actual\": \"bad-radius\", \"expected\": \"bad-radius\", \"passed\": true}, {\"check\": \"regression: f0=50 fs=1000 r=99/100\", \"actual\": {\"b\": [0.994061191, -1.963645296, 0.994061191], \"a\": [1.0, -1.955622914, 0.9801]}, \"expected\": {\"b\": [0.991021586, -1.885035075, 0.991021586], \"a\": [1.0, -1.883091902, 0.9801]}, \"passed\": false}, {\"check\": \"regression: f0=60 fs=480 r=0\", \"actual\": {\"b\": [6.568535592, -12.137071185, 6.568535592], \"a\": [1.0, 0.0, 0.0]}, \"expected\": {\"b\": [1.707106781, -2.414213562, 1.707106781], \"a\": [1.0, 0.0, 0.0]}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.206,"exit_code":0,"observations":[{"actual":{"a":[1.0,0.0,0.0],"b":[10.215864547,-19.431729095,10.215864547]},"check":"regression: f0=50 fs=1000 r=0","expected":{"a":[1.0,0.0,0.0],"b":[10.215864547,-19.431729095,10.215864547]},"passed":true},{"actual":{"a":[1.0,-1.711901729,0.81],"b":[1.002158645,-1.90621902,1.002158645]},"check":"regression: f0=50 fs=1000 r=9/10","expected":{"a":[1.0,-1.711901729,0.81],"b":[1.002158645,-1.90621902,1.002158645]},"passed":true},{"actual":{"a":[1.0,-0.951056516,0.25],"b":[3.053966137,-5.80898879,3.053966137]},"check":"regression: f0=50 fs=1000 r=1/2","expected":{"a":[1.0,-0.951056516,0.25],"b":[3.053966137,-5.80898879,3.053966137]},"passed":true},{"actual":"bad-frequency","check":"control: at nyquist","expected":"bad-frequency","passed":true},{"actual":"bad-radius","check":"control: bad radius","expected":"bad-radius","passed":true},{"actual":{"a":[1.0,-1.883091902,0.9801],"b":[0.991021586,-1.885035075,0.991021586]},"check":"regression: f0=50 fs=1000 r=99/100","expected":{"a":[1.0,-1.883091902,0.9801],"b":[0.991021586,-1.885035075,0.991021586]},"passed":true},{"actual":{"a":[1.0,0.0,0.0],"b":[1.707106781,-2.414213562,1.707106781]},"check":"regression: f0=60 fs=480 r=0","expected":{"a":[1.0,0.0,0.0],"b":[1.707106781,-2.414213562,1.707106781]},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: f0=50 fs=1000 r=0\", \"actual\": {\"b\": [10.215864547, -19.431729095, 10.215864547], \"a\": [1.0, 0.0, 0.0]}, \"expected\": {\"b\": [10.215864547, -19.431729095, 10.215864547], \"a\": [1.0, 0.0, 0.0]}, \"passed\": true}, {\"check\": \"regression: f0=50 fs=1000 r=9/10\", \"actual\": {\"b\": [1.002158645, -1.90621902, 1.002158645], \"a\": [1.0, -1.711901729, 0.81]}, \"expected\": {\"b\": [1.002158645, -1.90621902, 1.002158645], \"a\": [1.0, -1.711901729, 0.81]}, \"passed\": true}, {\"check\": \"regression: f0=50 fs=1000 r=1/2\", \"actual\": {\"b\": [3.053966137, -5.80898879, 3.053966137], \"a\": [1.0, -0.951056516, 0.25]}, \"expected\": {\"b\": [3.053966137, -5.80898879, 3.053966137], \"a\": [1.0, -0.951056516, 0.25]}, \"passed\": true}, {\"check\": \"control: at nyquist\", \"actual\": \"bad-frequency\", \"expected\": \"bad-frequency\", \"passed\": true}, {\"check\": \"control: bad radius\", \"actual\": \"bad-radius\", \"expected\": \"bad-radius\", \"passed\": true}, {\"check\": \"regression: f0=50 fs=1000 r=99/100\", \"actual\": {\"b\": [0.991021586, -1.885035075, 0.991021586], \"a\": [1.0, -1.883091902, 0.9801]}, \"expected\": {\"b\": [0.991021586, -1.885035075, 0.991021586], \"a\": [1.0, -1.883091902, 0.9801]}, \"passed\": true}, {\"check\": \"regression: f0=60 fs=480 r=0\", \"actual\": {\"b\": [1.707106781, -2.414213562, 1.707106781], \"a\": [1.0, 0.0, 0.0]}, \"expected\": {\"b\": [1.707106781, -2.414213562, 1.707106781], \"a\": [1.0, 0.0, 0.0]}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}