{"abstract":"K = 4 filters with an asymmetric five-sample window instead of returning \"bad-kernel\".","category":"Digital signal filters","checks":6,"contract":"Input [K, samples]; K odd (\"bad-kernel\" otherwise). Output i is the median of samples[i-K//2 .. i+K//2] clipped to the valid range (shrinking windows at the edges); an even count uses the mean of the two middle values. Return exact fraction strings.","contract_signature":"x","evaluation_group":"w2-digital_signal_filters-median-filter-shrink","failed_approach":"The attempted repair rejects only K = 2.","family":"w2-digital_signal_filters-median-filter-shrink-kernel-parity-validation","id":"FA-91471","implementations":{"attempt":{"sha256":"f91a09cf48e32c8e57a4aacb53999e077a576e19bd4c4de3cfad8088b10986d8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    k, xs = x\n    if k < 1 or k == 2:\n        return 'bad-kernel'\n    h = k // 2\n    out = []\n    for i in range(len(xs)):\n        win = sorted(xs[max(0, i - h):i + h + 1])\n        m = len(win)\n        if m % 2:\n            out.append(str(Fraction(win[m // 2])))\n        else:\n            out.append(str(Fraction(win[m // 2 - 1] + win[m // 2], 2)))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: unsorted window', [3, [5, 1, 9, 2]], ['3', '5', '2', '11/2']], ['control: edge even median', [3, [4, 1, 7]], ['5/2', '4', '4']], ['control: duplicates', [3, [2, 2, 5, 2]], ['2', '2', '2', '7/2']], ['control: negative odd sum', [3, [-3, 0, 5]], ['-3/2', '0', '5/2']]], [['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: random median 0', [3, [-2, -2, -2, 8]], ['-2', '-2', '-2', '3']], ['control: random median 1', [1, [2, 3, 4, -2]], ['2', '3', '4', '-2']], ['control: random median 2', [3, [5, 5, 3, -5, 8, -1]], ['5', '5', '3', '3', '-1', '7/2']], ['control: random median 3', [1, [2, -3, 7, 8, -2, 3, 8, 1]], ['2', '-3', '7', '8', '-2', '3', '8', '1']]], [['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 4', [3, [0, -4, -4, 3]], ['-2', '-4', '-4', '-1/2']], ['control: random median 5', [3, [2, -2, -2, -2, -4, -4]], ['0', '-2', '-2', '-2', '-4', '-4']], ['control: random median 6', [3, [3, 9, 2, 4, 6, 3, -4]], ['6', '3', '4', '4', '4', '3', '-1/2']], ['control: random median 7', [1, [7, 6, 6, -2, 6, 0, 8, -4]], ['7', '6', '6', '-2', '6', '0', '8', '-4']]], [['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: random median 8', [1, [2, 8, -4, 9, 7, 7]], ['2', '8', '-4', '9', '7', '7']], ['control: random median 9', [1, [2, 5, 7, 9]], ['2', '5', '7', '9']], ['control: random median 10', [1, [9, 3, -5, 8]], ['9', '3', '-5', '8']], ['control: random median 11', [5, [4, 4, 3, -2, -2, 4, 2, 1]], ['4', '7/2', '3', '3', '2', '1', '3/2', '2']]], [['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 12', [3, [7, 1, -5, -5, -5, 2, 5, -5]], ['4', '1', '-5', '-5', '-5', '2', '2', '0']], ['control: random median 13', [3, [1, -4, -1, 3, 9, 4, 6, 2]], ['-3/2', '-1', '-1', '3', '4', '6', '4', '4']], ['control: random median 14', [1, [2, 8, 6, 5, -4, -3, -1]], ['2', '8', '6', '5', '-4', '-3', '-1']], ['control: random median 15', [1, [8, 2]], ['8', '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":"5bb4b279e2fb0de4f903226850d33f981544f622d58762633fca2f521e9923ae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    k, xs = x\n    if k < 1:\n        return 'bad-kernel'\n    h = k // 2\n    out = []\n    for i in range(len(xs)):\n        win = sorted(xs[max(0, i - h):i + h + 1])\n        m = len(win)\n        if m % 2:\n            out.append(str(Fraction(win[m // 2])))\n        else:\n            out.append(str(Fraction(win[m // 2 - 1] + win[m // 2], 2)))\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: unsorted window', [3, [5, 1, 9, 2]], ['3', '5', '2', '11/2']], ['control: edge even median', [3, [4, 1, 7]], ['5/2', '4', '4']], ['control: duplicates', [3, [2, 2, 5, 2]], ['2', '2', '2', '7/2']], ['control: negative odd sum', [3, [-3, 0, 5]], ['-3/2', '0', '5/2']]], [['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: random median 0', [3, [-2, -2, -2, 8]], ['-2', '-2', '-2', '3']], ['control: random median 1', [1, [2, 3, 4, -2]], ['2', '3', '4', '-2']], ['control: random median 2', [3, [5, 5, 3, -5, 8, -1]], ['5', '5', '3', '3', '-1', '7/2']], ['control: random median 3', [1, [2, -3, 7, 8, -2, 3, 8, 1]], ['2', '-3', '7', '8', '-2', '3', '8', '1']]], [['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 4', [3, [0, -4, -4, 3]], ['-2', '-4', '-4', '-1/2']], ['control: random median 5', [3, [2, -2, -2, -2, -4, -4]], ['0', '-2', '-2', '-2', '-4', '-4']], ['control: random median 6', [3, [3, 9, 2, 4, 6, 3, -4]], ['6', '3', '4', '4', '4', '3', '-1/2']], ['control: random median 7', [1, [7, 6, 6, -2, 6, 0, 8, -4]], ['7', '6', '6', '-2', '6', '0', '8', '-4']]], [['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: random median 8', [1, [2, 8, -4, 9, 7, 7]], ['2', '8', '-4', '9', '7', '7']], ['control: random median 9', [1, [2, 5, 7, 9]], ['2', '5', '7', '9']], ['control: random median 10', [1, [9, 3, -5, 8]], ['9', '3', '-5', '8']], ['control: random median 11', [5, [4, 4, 3, -2, -2, 4, 2, 1]], ['4', '7/2', '3', '3', '2', '1', '3/2', '2']]], [['regression: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['regression: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 12', [3, [7, 1, -5, -5, -5, 2, 5, -5]], ['4', '1', '-5', '-5', '-5', '2', '2', '0']], ['control: random median 13', [3, [1, -4, -1, 3, 9, 4, 6, 2]], ['-3/2', '-1', '-1', '3', '4', '6', '4', '4']], ['control: random median 14', [1, [2, 8, 6, 5, -4, -3, -1]], ['2', '8', '6', '5', '-4', '-3', '-1']], ['control: random median 15', [1, [8, 2]], ['8', '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-median-filter-shrink-kernel-parity-validation","generated_at":"2026-09-29T14:51:36.313060+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Median filters remove impulse noise without blurring edges; window or tie handling slips shift features.","root_cause":"Only non-positive kernels are rejected.","sha256":"808fd2b4a0d183728eda0bf669d74db670923c0eb7c7b1f0a3f6ddba2213ff51","title":"Median filter accepts even kernels · 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":40.643,"exit_code":1,"observations":[{"actual":"bad-kernel","check":"regression: even kernel","expected":"bad-kernel","passed":true},{"actual":["2","7/2","7/2","5"],"check":"regression: even kernel four","expected":"bad-kernel","passed":false},{"actual":["3","5","2","11/2"],"check":"control: unsorted window","expected":["3","5","2","11/2"],"passed":true},{"actual":["5/2","4","4"],"check":"control: edge even median","expected":["5/2","4","4"],"passed":true},{"actual":["2","2","2","7/2"],"check":"control: duplicates","expected":["2","2","2","7/2"],"passed":true},{"actual":["-3/2","0","5/2"],"check":"control: negative odd sum","expected":["-3/2","0","5/2"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: even kernel\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"regression: even kernel four\", \"actual\": [\"2\", \"7/2\", \"7/2\", \"5\"], \"expected\": \"bad-kernel\", \"passed\": false}, {\"check\": \"control: unsorted window\", \"actual\": [\"3\", \"5\", \"2\", \"11/2\"], \"expected\": [\"3\", \"5\", \"2\", \"11/2\"], \"passed\": true}, {\"check\": \"control: edge even median\", \"actual\": [\"5/2\", \"4\", \"4\"], \"expected\": [\"5/2\", \"4\", \"4\"], \"passed\": true}, {\"check\": \"control: duplicates\", \"actual\": [\"2\", \"2\", \"2\", \"7/2\"], \"expected\": [\"2\", \"2\", \"2\", \"7/2\"], \"passed\": true}, {\"check\": \"control: negative odd sum\", \"actual\": [\"-3/2\", \"0\", \"5/2\"], \"expected\": [\"-3/2\", \"0\", \"5/2\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.288,"exit_code":1,"observations":[{"actual":["3/2","2","5/2"],"check":"regression: even kernel","expected":"bad-kernel","passed":false},{"actual":["2","7/2","7/2","5"],"check":"regression: even kernel four","expected":"bad-kernel","passed":false},{"actual":["3","5","2","11/2"],"check":"control: unsorted window","expected":["3","5","2","11/2"],"passed":true},{"actual":["5/2","4","4"],"check":"control: edge even median","expected":["5/2","4","4"],"passed":true},{"actual":["2","2","2","7/2"],"check":"control: duplicates","expected":["2","2","2","7/2"],"passed":true},{"actual":["-3/2","0","5/2"],"check":"control: negative odd sum","expected":["-3/2","0","5/2"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: even kernel\", \"actual\": [\"3/2\", \"2\", \"5/2\"], \"expected\": \"bad-kernel\", \"passed\": false}, {\"check\": \"regression: even kernel four\", \"actual\": [\"2\", \"7/2\", \"7/2\", \"5\"], \"expected\": \"bad-kernel\", \"passed\": false}, {\"check\": \"control: unsorted window\", \"actual\": [\"3\", \"5\", \"2\", \"11/2\"], \"expected\": [\"3\", \"5\", \"2\", \"11/2\"], \"passed\": true}, {\"check\": \"control: edge even median\", \"actual\": [\"5/2\", \"4\", \"4\"], \"expected\": [\"5/2\", \"4\", \"4\"], \"passed\": true}, {\"check\": \"control: duplicates\", \"actual\": [\"2\", \"2\", \"2\", \"7/2\"], \"expected\": [\"2\", \"2\", \"2\", \"7/2\"], \"passed\": true}, {\"check\": \"control: negative odd sum\", \"actual\": [\"-3/2\", \"0\", \"5/2\"], \"expected\": [\"-3/2\", \"0\", \"5/2\"], \"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."}}