{"abstract":"[1, 2, -1] is classified as type 3 although a nonzero centre breaks antisymmetry.","category":"Digital signal filters","checks":7,"contract":"Input integer taps. Strip leading and trailing zeros (\"degenerate\" if all zero). The trimmed support of length N is type 1/2 if symmetric (odd/even N), type 3/4 if antisymmetric (odd/even N), otherwise not linear phase. Return {\"type\", \"group_delay\": leading zeros + (N-1)/2 as a fraction string} or both None.","evaluation_group":"w2-digital_signal_filters-linear-phase-classifier","failed_approach":"The attempted repair additionally requires g[N//2] == 0 for every length, rejecting valid even-length type 4 filters.","family":"w2-digital_signal_filters-linear-phase-classifier-antisymmetric-centre-tap","id":"FA-91641","implementations":{"attempt":{"sha256":"1cec7236905a67e9e7fb815343b068b5e9c8194317e1c4b3de455addcad4baa1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    h = list(x)\n    lead = 0\n    while lead < len(h) and h[lead] == 0:\n        lead += 1\n    if lead == len(h):\n        return 'degenerate'\n    end = len(h)\n    while h[end - 1] == 0:\n        end -= 1\n    g = h[lead:end]\n    N = len(g)\n    sym = all(g[i] == g[N - 1 - i] for i in range(N))\n    anti = all(g[i] == -g[N - 1 - i] for i in range(N // 2)) and g[N // 2] == 0\n    if sym:\n        typ = 1 if N % 2 else 2\n    elif anti:\n        typ = 3 if N % 2 else 4\n    else:\n        return {'type': None, 'group_delay': None}\n    return {'type': typ, 'group_delay': str(lead + Fraction(N - 1, 2))}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['repair check: type IV', [1, -1], {'type': 4, 'group_delay': '1/2'}], ['control: type III zero centre', [1, 0, -1], {'type': 3, 'group_delay': '1'}], ['control: type I', [1, 2, 1], {'type': 1, 'group_delay': '1'}], ['control: type II', [1, 1], {'type': 2, 'group_delay': '1/2'}], ['control: leading zeros symmetric', [0, 0, 1, 2, 1], {'type': 1, 'group_delay': '3'}]], [['regression: random linear phase 6', [0, 3, 2, -3], {'type': None, 'group_delay': None}], ['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['repair check: random linear phase 1', [0, 2, -2, 0, 0, 0], {'type': 4, 'group_delay': '3/2'}], ['control: trailing zeros', [1, 2, 1, 0], {'type': 1, 'group_delay': '1'}], ['control: interior zero symmetric', [1, 0, 1], {'type': 1, 'group_delay': '1'}], ['control: all zero', [0, 0, 0], 'degenerate'], ['control: not linear phase', [1, 2, 3], {'type': None, 'group_delay': None}]], [['regression: random linear phase 4', [0, 1, -1, -1, 0], {'type': None, 'group_delay': None}], ['regression: random linear phase 6', [0, 3, 2, -3], {'type': None, 'group_delay': None}], ['repair check: random linear phase 10', [0, 0, 0, -1, 1, 0], {'type': 4, 'group_delay': '7/2'}], ['control: padded type II', [0, 3, 3, 0, 0], {'type': 2, 'group_delay': '3/2'}], ['control: single tap', [5], {'type': 1, 'group_delay': '0'}], ['control: padded interior zeros', [0, 2, 0, 0, 2], {'type': 2, 'group_delay': '5/2'}], ['control: random linear phase 0', [-1, -2, -1, 0, 1, 2, 1, 0], {'type': 3, 'group_delay': '3'}]], [['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['regression: random linear phase 4', [0, 1, -1, -1, 0], {'type': None, 'group_delay': None}], ['repair check: random linear phase 12', [-1, 1, -1, 1, 0, 0], {'type': 4, 'group_delay': '3/2'}], ['control: random linear phase 3', [1, 0, 1, 0], {'type': 1, 'group_delay': '1'}], ['control: random linear phase 5', [0, 0, -3, -3, -2, -3, -3, 0], {'type': 1, 'group_delay': '4'}], ['control: random linear phase 7', [0, 0, 0, 0, 0], 'degenerate'], ['control: random linear phase 9', [0, 0, -1, -3, 3, -1, 3, -3, -1, 0, 0], {'type': 1, 'group_delay': '5'}]], [['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['repair check: random linear phase 16', [0, -3, -1, 1, 3, 0, 0], {'type': 4, 'group_delay': '5/2'}], ['control: random linear phase 13', [-3, -3, 0, 0], {'type': 2, 'group_delay': '1/2'}], ['control: random linear phase 15', [0, 0, 1, -1, -1, 1, 0, 0], {'type': 2, 'group_delay': '7/2'}], ['control: random linear phase 17', [0, -3, 1, 3, -1, 3, 1, -3], {'type': 1, 'group_delay': '4'}], ['control: random linear phase 18', [0, 0, 3, 3, 0, 0], {'type': 2, 'group_delay': '5/2'}]]]\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":"06733e0f0ec551e27e182f201c925776543c270a8a4ccba52a50a3ccffd951ab","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    h = list(x)\n    lead = 0\n    while lead < len(h) and h[lead] == 0:\n        lead += 1\n    if lead == len(h):\n        return 'degenerate'\n    end = len(h)\n    while h[end - 1] == 0:\n        end -= 1\n    g = h[lead:end]\n    N = len(g)\n    sym = all(g[i] == g[N - 1 - i] for i in range(N))\n    anti = all(g[i] == -g[N - 1 - i] for i in range(N // 2))\n    if sym:\n        typ = 1 if N % 2 else 2\n    elif anti:\n        typ = 3 if N % 2 else 4\n    else:\n        return {'type': None, 'group_delay': None}\n    return {'type': typ, 'group_delay': str(lead + Fraction(N - 1, 2))}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['repair check: type IV', [1, -1], {'type': 4, 'group_delay': '1/2'}], ['control: type III zero centre', [1, 0, -1], {'type': 3, 'group_delay': '1'}], ['control: type I', [1, 2, 1], {'type': 1, 'group_delay': '1'}], ['control: type II', [1, 1], {'type': 2, 'group_delay': '1/2'}], ['control: leading zeros symmetric', [0, 0, 1, 2, 1], {'type': 1, 'group_delay': '3'}]], [['regression: random linear phase 6', [0, 3, 2, -3], {'type': None, 'group_delay': None}], ['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['repair check: random linear phase 1', [0, 2, -2, 0, 0, 0], {'type': 4, 'group_delay': '3/2'}], ['control: trailing zeros', [1, 2, 1, 0], {'type': 1, 'group_delay': '1'}], ['control: interior zero symmetric', [1, 0, 1], {'type': 1, 'group_delay': '1'}], ['control: all zero', [0, 0, 0], 'degenerate'], ['control: not linear phase', [1, 2, 3], {'type': None, 'group_delay': None}]], [['regression: random linear phase 4', [0, 1, -1, -1, 0], {'type': None, 'group_delay': None}], ['regression: random linear phase 6', [0, 3, 2, -3], {'type': None, 'group_delay': None}], ['repair check: random linear phase 10', [0, 0, 0, -1, 1, 0], {'type': 4, 'group_delay': '7/2'}], ['control: padded type II', [0, 3, 3, 0, 0], {'type': 2, 'group_delay': '3/2'}], ['control: single tap', [5], {'type': 1, 'group_delay': '0'}], ['control: padded interior zeros', [0, 2, 0, 0, 2], {'type': 2, 'group_delay': '5/2'}], ['control: random linear phase 0', [-1, -2, -1, 0, 1, 2, 1, 0], {'type': 3, 'group_delay': '3'}]], [['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['regression: random linear phase 4', [0, 1, -1, -1, 0], {'type': None, 'group_delay': None}], ['repair check: random linear phase 12', [-1, 1, -1, 1, 0, 0], {'type': 4, 'group_delay': '3/2'}], ['control: random linear phase 3', [1, 0, 1, 0], {'type': 1, 'group_delay': '1'}], ['control: random linear phase 5', [0, 0, -3, -3, -2, -3, -3, 0], {'type': 1, 'group_delay': '4'}], ['control: random linear phase 7', [0, 0, 0, 0, 0], 'degenerate'], ['control: random linear phase 9', [0, 0, -1, -3, 3, -1, 3, -3, -1, 0, 0], {'type': 1, 'group_delay': '5'}]], [['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['repair check: random linear phase 16', [0, -3, -1, 1, 3, 0, 0], {'type': 4, 'group_delay': '5/2'}], ['control: random linear phase 13', [-3, -3, 0, 0], {'type': 2, 'group_delay': '1/2'}], ['control: random linear phase 15', [0, 0, 1, -1, -1, 1, 0, 0], {'type': 2, 'group_delay': '7/2'}], ['control: random linear phase 17', [0, -3, 1, 3, -1, 3, 1, -3], {'type': 1, 'group_delay': '4'}], ['control: random linear phase 18', [0, 0, 3, 3, 0, 0], {'type': 2, 'group_delay': '5/2'}]]]\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":"300734ad7ae38facf5aebf6bca097aa1c9c3bbb1d20af99b30cfa4e98c0aa506","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    h = list(x)\n    lead = 0\n    while lead < len(h) and h[lead] == 0:\n        lead += 1\n    if lead == len(h):\n        return 'degenerate'\n    end = len(h)\n    while h[end - 1] == 0:\n        end -= 1\n    g = h[lead:end]\n    N = len(g)\n    sym = all(g[i] == g[N - 1 - i] for i in range(N))\n    anti = all(g[i] == -g[N - 1 - i] for i in range(N))\n    if sym:\n        typ = 1 if N % 2 else 2\n    elif anti:\n        typ = 3 if N % 2 else 4\n    else:\n        return {'type': None, 'group_delay': None}\n    return {'type': typ, 'group_delay': str(lead + Fraction(N - 1, 2))}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['repair check: type IV', [1, -1], {'type': 4, 'group_delay': '1/2'}], ['control: type III zero centre', [1, 0, -1], {'type': 3, 'group_delay': '1'}], ['control: type I', [1, 2, 1], {'type': 1, 'group_delay': '1'}], ['control: type II', [1, 1], {'type': 2, 'group_delay': '1/2'}], ['control: leading zeros symmetric', [0, 0, 1, 2, 1], {'type': 1, 'group_delay': '3'}]], [['regression: random linear phase 6', [0, 3, 2, -3], {'type': None, 'group_delay': None}], ['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['repair check: random linear phase 1', [0, 2, -2, 0, 0, 0], {'type': 4, 'group_delay': '3/2'}], ['control: trailing zeros', [1, 2, 1, 0], {'type': 1, 'group_delay': '1'}], ['control: interior zero symmetric', [1, 0, 1], {'type': 1, 'group_delay': '1'}], ['control: all zero', [0, 0, 0], 'degenerate'], ['control: not linear phase', [1, 2, 3], {'type': None, 'group_delay': None}]], [['regression: random linear phase 4', [0, 1, -1, -1, 0], {'type': None, 'group_delay': None}], ['regression: random linear phase 6', [0, 3, 2, -3], {'type': None, 'group_delay': None}], ['repair check: random linear phase 10', [0, 0, 0, -1, 1, 0], {'type': 4, 'group_delay': '7/2'}], ['control: padded type II', [0, 3, 3, 0, 0], {'type': 2, 'group_delay': '3/2'}], ['control: single tap', [5], {'type': 1, 'group_delay': '0'}], ['control: padded interior zeros', [0, 2, 0, 0, 2], {'type': 2, 'group_delay': '5/2'}], ['control: random linear phase 0', [-1, -2, -1, 0, 1, 2, 1, 0], {'type': 3, 'group_delay': '3'}]], [['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['regression: random linear phase 4', [0, 1, -1, -1, 0], {'type': None, 'group_delay': None}], ['repair check: random linear phase 12', [-1, 1, -1, 1, 0, 0], {'type': 4, 'group_delay': '3/2'}], ['control: random linear phase 3', [1, 0, 1, 0], {'type': 1, 'group_delay': '1'}], ['control: random linear phase 5', [0, 0, -3, -3, -2, -3, -3, 0], {'type': 1, 'group_delay': '4'}], ['control: random linear phase 7', [0, 0, 0, 0, 0], 'degenerate'], ['control: random linear phase 9', [0, 0, -1, -3, 3, -1, 3, -3, -1, 0, 0], {'type': 1, 'group_delay': '5'}]], [['regression: type III nonzero centre', [1, 2, -1], {'type': None, 'group_delay': None}], ['regression: random linear phase 2', [0, 0, 2, 0, 2, 0, -2, 0, 0], {'type': None, 'group_delay': None}], ['repair check: random linear phase 16', [0, -3, -1, 1, 3, 0, 0], {'type': 4, 'group_delay': '5/2'}], ['control: random linear phase 13', [-3, -3, 0, 0], {'type': 2, 'group_delay': '1/2'}], ['control: random linear phase 15', [0, 0, 1, -1, -1, 1, 0, 0], {'type': 2, 'group_delay': '7/2'}], ['control: random linear phase 17', [0, -3, 1, 3, -1, 3, 1, -3], {'type': 1, 'group_delay': '4'}], ['control: random linear phase 18', [0, 0, 3, 3, 0, 0], {'type': 2, 'group_delay': '5/2'}]]]\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-linear-phase-classifier-antisymmetric-centre-tap","generated_at":"2026-09-29T14:51:38.018317+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Linear-phase type determines which responses an FIR can realize (e.g. no highpass for type 2); misclassification picks the wrong design.","repair":"Test g[i] == -g[N-1-i] for every i, which forces the centre to 0.","root_cause":"The antisymmetry test only compares mirrored pairs (range(N // 2)), never requiring the centre to be zero.","sha256":"3ea157171e366f981d2beb6d1c190d2816a09004dd19cf872c1dbd8ddd282eba","title":"Linear-phase check skips the centre tap for antisymmetry · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.886,"exit_code":1,"observations":[{"actual":{"group_delay":null,"type":null},"check":"regression: type III nonzero centre","expected":{"group_delay":null,"type":null},"passed":true},{"actual":{"group_delay":null,"type":null},"check":"regression: random linear phase 2","expected":{"group_delay":null,"type":null},"passed":true},{"actual":{"group_delay":null,"type":null},"check":"repair check: type IV","expected":{"group_delay":"1/2","type":4},"passed":false},{"actual":{"group_delay":"1","type":3},"check":"control: type III zero centre","expected":{"group_delay":"1","type":3},"passed":true},{"actual":{"group_delay":"1","type":1},"check":"control: type I","expected":{"group_delay":"1","type":1},"passed":true},{"actual":{"group_delay":"1/2","type":2},"check":"control: type II","expected":{"group_delay":"1/2","type":2},"passed":true},{"actual":{"group_delay":"3","type":1},"check":"control: leading zeros symmetric","expected":{"group_delay":"3","type":1},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: type III nonzero centre\", \"actual\": {\"type\": null, \"group_delay\": null}, \"expected\": {\"type\": null, \"group_delay\": null}, \"passed\": true}, {\"check\": \"regression: random linear phase 2\", \"actual\": {\"type\": null, \"group_delay\": null}, \"expected\": {\"type\": null, \"group_delay\": null}, \"passed\": true}, {\"check\": \"repair check: type IV\", \"actual\": {\"type\": null, \"group_delay\": null}, \"expected\": {\"type\": 4, \"group_delay\": \"1/2\"}, \"passed\": false}, {\"check\": \"control: type III zero centre\", \"actual\": {\"type\": 3, \"group_delay\": \"1\"}, \"expected\": {\"type\": 3, \"group_delay\": \"1\"}, \"passed\": true}, {\"check\": \"control: type I\", \"actual\": {\"type\": 1, \"group_delay\": \"1\"}, \"expected\": {\"type\": 1, \"group_delay\": \"1\"}, \"passed\": true}, {\"check\": \"control: type II\", \"actual\": {\"type\": 2, \"group_delay\": \"1/2\"}, \"expected\": {\"type\": 2, \"group_delay\": \"1/2\"}, \"passed\": true}, {\"check\": \"control: leading zeros symmetric\", \"actual\": {\"type\": 1, \"group_delay\": \"3\"}, \"expected\": {\"type\": 1, \"group_delay\": \"3\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.468,"exit_code":1,"observations":[{"actual":{"group_delay":"1","type":3},"check":"regression: type III nonzero centre","expected":{"group_delay":null,"type":null},"passed":false},{"actual":{"group_delay":"4","type":3},"check":"regression: random linear phase 2","expected":{"group_delay":null,"type":null},"passed":false},{"actual":{"group_delay":"1/2","type":4},"check":"repair check: type IV","expected":{"group_delay":"1/2","type":4},"passed":true},{"actual":{"group_delay":"1","type":3},"check":"control: type III zero centre","expected":{"group_delay":"1","type":3},"passed":true},{"actual":{"group_delay":"1","type":1},"check":"control: type I","expected":{"group_delay":"1","type":1},"passed":true},{"actual":{"group_delay":"1/2","type":2},"check":"control: type II","expected":{"group_delay":"1/2","type":2},"passed":true},{"actual":{"group_delay":"3","type":1},"check":"control: leading zeros symmetric","expected":{"group_delay":"3","type":1},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: type III nonzero centre\", \"actual\": {\"type\": 3, \"group_delay\": \"1\"}, \"expected\": {\"type\": null, \"group_delay\": null}, \"passed\": false}, {\"check\": \"regression: random linear phase 2\", \"actual\": {\"type\": 3, \"group_delay\": \"4\"}, \"expected\": {\"type\": null, \"group_delay\": null}, \"passed\": false}, {\"check\": \"repair check: type IV\", \"actual\": {\"type\": 4, \"group_delay\": \"1/2\"}, \"expected\": {\"type\": 4, \"group_delay\": \"1/2\"}, \"passed\": true}, {\"check\": \"control: type III zero centre\", \"actual\": {\"type\": 3, \"group_delay\": \"1\"}, \"expected\": {\"type\": 3, \"group_delay\": \"1\"}, \"passed\": true}, {\"check\": \"control: type I\", \"actual\": {\"type\": 1, \"group_delay\": \"1\"}, \"expected\": {\"type\": 1, \"group_delay\": \"1\"}, \"passed\": true}, {\"check\": \"control: type II\", \"actual\": {\"type\": 2, \"group_delay\": \"1/2\"}, \"expected\": {\"type\": 2, \"group_delay\": \"1/2\"}, \"passed\": true}, {\"check\": \"control: leading zeros symmetric\", \"actual\": {\"type\": 1, \"group_delay\": \"3\"}, \"expected\": {\"type\": 1, \"group_delay\": \"3\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.774,"exit_code":0,"observations":[{"actual":{"group_delay":null,"type":null},"check":"regression: type III nonzero centre","expected":{"group_delay":null,"type":null},"passed":true},{"actual":{"group_delay":null,"type":null},"check":"regression: random linear phase 2","expected":{"group_delay":null,"type":null},"passed":true},{"actual":{"group_delay":"1/2","type":4},"check":"repair check: type IV","expected":{"group_delay":"1/2","type":4},"passed":true},{"actual":{"group_delay":"1","type":3},"check":"control: type III zero centre","expected":{"group_delay":"1","type":3},"passed":true},{"actual":{"group_delay":"1","type":1},"check":"control: type I","expected":{"group_delay":"1","type":1},"passed":true},{"actual":{"group_delay":"1/2","type":2},"check":"control: type II","expected":{"group_delay":"1/2","type":2},"passed":true},{"actual":{"group_delay":"3","type":1},"check":"control: leading zeros symmetric","expected":{"group_delay":"3","type":1},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: type III nonzero centre\", \"actual\": {\"type\": null, \"group_delay\": null}, \"expected\": {\"type\": null, \"group_delay\": null}, \"passed\": true}, {\"check\": \"regression: random linear phase 2\", \"actual\": {\"type\": null, \"group_delay\": null}, \"expected\": {\"type\": null, \"group_delay\": null}, \"passed\": true}, {\"check\": \"repair check: type IV\", \"actual\": {\"type\": 4, \"group_delay\": \"1/2\"}, \"expected\": {\"type\": 4, \"group_delay\": \"1/2\"}, \"passed\": true}, {\"check\": \"control: type III zero centre\", \"actual\": {\"type\": 3, \"group_delay\": \"1\"}, \"expected\": {\"type\": 3, \"group_delay\": \"1\"}, \"passed\": true}, {\"check\": \"control: type I\", \"actual\": {\"type\": 1, \"group_delay\": \"1\"}, \"expected\": {\"type\": 1, \"group_delay\": \"1\"}, \"passed\": true}, {\"check\": \"control: type II\", \"actual\": {\"type\": 2, \"group_delay\": \"1/2\"}, \"expected\": {\"type\": 2, \"group_delay\": \"1/2\"}, \"passed\": true}, {\"check\": \"control: leading zeros symmetric\", \"actual\": {\"type\": 1, \"group_delay\": \"3\"}, \"expected\": {\"type\": 1, \"group_delay\": \"3\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}