{"abstract":"At the start of the signal the window slice is empty or picks samples from the end.","category":"Digital signal filters","checks":7,"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.","evaluation_group":"w2-digital_signal_filters-median-filter-shrink","failed_approach":"The attempted repair uses abs(i - h), which starts the window at a mirrored position.","family":"w2-digital_signal_filters-median-filter-shrink-window-lower-clip","id":"FA-91461","implementations":{"attempt":{"sha256":"aa03df5a5557c0a43e15cec89a9a004e3e85191d40b5546a5ef8c4aca6a5bf64","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 == 0:\n        return 'bad-kernel'\n    h = k // 2\n    out = []\n    for i in range(len(xs)):\n        win = sorted(xs[abs(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: random median 26', [3, [-4, 5]], ['1/2', '1/2']], ['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['control: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 1', [1, [2, 3, 4, -2]], ['2', '3', '4', '-2']], ['control: random median 3', [1, [2, -3, 7, 8, -2, 3, 8, 1]], ['2', '-3', '7', '8', '-2', '3', '8', '1']]], [['regression: random median 40', [3, [0, 2]], ['1', '1']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['control: random median 7', [1, [7, 6, 6, -2, 6, 0, 8, -4]], ['7', '6', '6', '-2', '6', '0', '8', '-4']], ['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']]], [['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['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']], ['control: random median 17', [1, [-5, -2, -4, 5, 9, 2, -4]], ['-5', '-2', '-4', '5', '9', '2', '-4']], ['control: random median 23', [1, [4, 1, -1, 3, -1]], ['4', '1', '-1', '3', '-1']]], [['regression: random median 44', [3, [9, 7]], ['8', '8']], ['regression: random median 26', [3, [-4, 5]], ['1/2', '1/2']], ['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['control: random median 25', [1, [-5, 6]], ['-5', '6']], ['control: random median 27', [1, [-2, 5, -4, 7, 1, -3]], ['-2', '5', '-4', '7', '1', '-3']], ['control: random median 28', [1, [1, -1, 2, 9, 2, 3, 6]], ['1', '-1', '2', '9', '2', '3', '6']], ['control: random median 35', [1, [-3, 0, 9]], ['-3', '0', '9']]], [['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['regression: random median 40', [3, [0, 2]], ['1', '1']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['control: random median 36', [1, [9, 8, 4]], ['9', '8', '4']], ['control: random median 37', [1, [-5, 8, 6, 4, -4, 5]], ['-5', '8', '6', '4', '-4', '5']], ['control: random median 39', [1, [3, 6, 4, 4, 1, -4, 9]], ['3', '6', '4', '4', '1', '-4', '9']], ['control: random median 41', [1, [2, 6]], ['2', '6']]]]\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":"f340ef53e4d2820171fc90c638110bbac80af8f8f9d976973f3a5633dbe76e2a","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 == 0:\n        return 'bad-kernel'\n    h = k // 2\n    out = []\n    for i in range(len(xs)):\n        win = sorted(xs[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: random median 26', [3, [-4, 5]], ['1/2', '1/2']], ['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['control: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 1', [1, [2, 3, 4, -2]], ['2', '3', '4', '-2']], ['control: random median 3', [1, [2, -3, 7, 8, -2, 3, 8, 1]], ['2', '-3', '7', '8', '-2', '3', '8', '1']]], [['regression: random median 40', [3, [0, 2]], ['1', '1']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['control: random median 7', [1, [7, 6, 6, -2, 6, 0, 8, -4]], ['7', '6', '6', '-2', '6', '0', '8', '-4']], ['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']]], [['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['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']], ['control: random median 17', [1, [-5, -2, -4, 5, 9, 2, -4]], ['-5', '-2', '-4', '5', '9', '2', '-4']], ['control: random median 23', [1, [4, 1, -1, 3, -1]], ['4', '1', '-1', '3', '-1']]], [['regression: random median 44', [3, [9, 7]], ['8', '8']], ['regression: random median 26', [3, [-4, 5]], ['1/2', '1/2']], ['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['control: random median 25', [1, [-5, 6]], ['-5', '6']], ['control: random median 27', [1, [-2, 5, -4, 7, 1, -3]], ['-2', '5', '-4', '7', '1', '-3']], ['control: random median 28', [1, [1, -1, 2, 9, 2, 3, 6]], ['1', '-1', '2', '9', '2', '3', '6']], ['control: random median 35', [1, [-3, 0, 9]], ['-3', '0', '9']]], [['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['regression: random median 40', [3, [0, 2]], ['1', '1']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['control: random median 36', [1, [9, 8, 4]], ['9', '8', '4']], ['control: random median 37', [1, [-5, 8, 6, 4, -4, 5]], ['-5', '8', '6', '4', '-4', '5']], ['control: random median 39', [1, [3, 6, 4, 4, 1, -4, 9]], ['3', '6', '4', '4', '1', '-4', '9']], ['control: random median 41', [1, [2, 6]], ['2', '6']]]]\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":"c51bda44783c92e3e40939ca27a72129ac93b817b05f0f695b82ddb4135c96c0","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 == 0:\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: random median 26', [3, [-4, 5]], ['1/2', '1/2']], ['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['control: even kernel', [2, [1, 2, 3]], 'bad-kernel'], ['control: even kernel four', [4, [1, 5, 2, 8]], 'bad-kernel'], ['control: random median 1', [1, [2, 3, 4, -2]], ['2', '3', '4', '-2']], ['control: random median 3', [1, [2, -3, 7, 8, -2, 3, 8, 1]], ['2', '-3', '7', '8', '-2', '3', '8', '1']]], [['regression: random median 40', [3, [0, 2]], ['1', '1']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['control: random median 7', [1, [7, 6, 6, -2, 6, 0, 8, -4]], ['7', '6', '6', '-2', '6', '0', '8', '-4']], ['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']]], [['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['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']], ['control: random median 17', [1, [-5, -2, -4, 5, 9, 2, -4]], ['-5', '-2', '-4', '5', '9', '2', '-4']], ['control: random median 23', [1, [4, 1, -1, 3, -1]], ['4', '1', '-1', '3', '-1']]], [['regression: random median 44', [3, [9, 7]], ['8', '8']], ['regression: random median 26', [3, [-4, 5]], ['1/2', '1/2']], ['regression: random median 29', [5, [9, 8, 5]], ['8', '8', '8']], ['control: random median 25', [1, [-5, 6]], ['-5', '6']], ['control: random median 27', [1, [-2, 5, -4, 7, 1, -3]], ['-2', '5', '-4', '7', '1', '-3']], ['control: random median 28', [1, [1, -1, 2, 9, 2, 3, 6]], ['1', '-1', '2', '9', '2', '3', '6']], ['control: random median 35', [1, [-3, 0, 9]], ['-3', '0', '9']]], [['regression: random median 34', [3, [-1, 5]], ['2', '2']], ['regression: random median 40', [3, [0, 2]], ['1', '1']], ['regression: random median 44', [3, [9, 7]], ['8', '8']], ['control: random median 36', [1, [9, 8, 4]], ['9', '8', '4']], ['control: random median 37', [1, [-5, 8, 6, 4, -4, 5]], ['-5', '8', '6', '4', '-4', '5']], ['control: random median 39', [1, [3, 6, 4, 4, 1, -4, 9]], ['3', '6', '4', '4', '1', '-4', '9']], ['control: random median 41', [1, [2, 6]], ['2', '6']]]]\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-window-lower-clip","generated_at":"2026-09-29T14:51:36.264581+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.","repair":"Clip the start at 0.","root_cause":"The start index is i - h without clipping; negative starts are interpreted from the end.","sha256":"1d232b03a55c5994a62aaf5d00b453e46be2cfe0747d96558ca7f8e426b5f18c","title":"Median filter lets the window start wrap to the end · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":43.437,"exit_code":1,"observations":[{"actual":["5","1/2"],"check":"regression: random median 26","expected":["1/2","1/2"],"passed":false},{"actual":["5","13/2","8"],"check":"regression: random median 29","expected":["8","8","8"],"passed":false},{"actual":["5","2"],"check":"regression: random median 34","expected":["2","2"],"passed":false},{"actual":"bad-kernel","check":"control: even kernel","expected":"bad-kernel","passed":true},{"actual":"bad-kernel","check":"control: even kernel four","expected":"bad-kernel","passed":true},{"actual":["2","3","4","-2"],"check":"control: random median 1","expected":["2","3","4","-2"],"passed":true},{"actual":["2","-3","7","8","-2","3","8","1"],"check":"control: random median 3","expected":["2","-3","7","8","-2","3","8","1"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: random median 26\", \"actual\": [\"5\", \"1/2\"], \"expected\": [\"1/2\", \"1/2\"], \"passed\": false}, {\"check\": \"regression: random median 29\", \"actual\": [\"5\", \"13/2\", \"8\"], \"expected\": [\"8\", \"8\", \"8\"], \"passed\": false}, {\"check\": \"regression: random median 34\", \"actual\": [\"5\", \"2\"], \"expected\": [\"2\", \"2\"], \"passed\": false}, {\"check\": \"control: even kernel\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"control: even kernel four\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"control: random median 1\", \"actual\": [\"2\", \"3\", \"4\", \"-2\"], \"expected\": [\"2\", \"3\", \"4\", \"-2\"], \"passed\": true}, {\"check\": \"control: random median 3\", \"actual\": [\"2\", \"-3\", \"7\", \"8\", \"-2\", \"3\", \"8\", \"1\"], \"expected\": [\"2\", \"-3\", \"7\", \"8\", \"-2\", \"3\", \"8\", \"1\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.359,"exit_code":1,"observations":[{"actual":["5","1/2"],"check":"regression: random median 26","expected":["1/2","1/2"],"passed":false},{"actual":["13/2","5","8"],"check":"regression: random median 29","expected":["8","8","8"],"passed":false},{"actual":["5","2"],"check":"regression: random median 34","expected":["2","2"],"passed":false},{"actual":"bad-kernel","check":"control: even kernel","expected":"bad-kernel","passed":true},{"actual":"bad-kernel","check":"control: even kernel four","expected":"bad-kernel","passed":true},{"actual":["2","3","4","-2"],"check":"control: random median 1","expected":["2","3","4","-2"],"passed":true},{"actual":["2","-3","7","8","-2","3","8","1"],"check":"control: random median 3","expected":["2","-3","7","8","-2","3","8","1"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: random median 26\", \"actual\": [\"5\", \"1/2\"], \"expected\": [\"1/2\", \"1/2\"], \"passed\": false}, {\"check\": \"regression: random median 29\", \"actual\": [\"13/2\", \"5\", \"8\"], \"expected\": [\"8\", \"8\", \"8\"], \"passed\": false}, {\"check\": \"regression: random median 34\", \"actual\": [\"5\", \"2\"], \"expected\": [\"2\", \"2\"], \"passed\": false}, {\"check\": \"control: even kernel\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"control: even kernel four\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"control: random median 1\", \"actual\": [\"2\", \"3\", \"4\", \"-2\"], \"expected\": [\"2\", \"3\", \"4\", \"-2\"], \"passed\": true}, {\"check\": \"control: random median 3\", \"actual\": [\"2\", \"-3\", \"7\", \"8\", \"-2\", \"3\", \"8\", \"1\"], \"expected\": [\"2\", \"-3\", \"7\", \"8\", \"-2\", \"3\", \"8\", \"1\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.159,"exit_code":0,"observations":[{"actual":["1/2","1/2"],"check":"regression: random median 26","expected":["1/2","1/2"],"passed":true},{"actual":["8","8","8"],"check":"regression: random median 29","expected":["8","8","8"],"passed":true},{"actual":["2","2"],"check":"regression: random median 34","expected":["2","2"],"passed":true},{"actual":"bad-kernel","check":"control: even kernel","expected":"bad-kernel","passed":true},{"actual":"bad-kernel","check":"control: even kernel four","expected":"bad-kernel","passed":true},{"actual":["2","3","4","-2"],"check":"control: random median 1","expected":["2","3","4","-2"],"passed":true},{"actual":["2","-3","7","8","-2","3","8","1"],"check":"control: random median 3","expected":["2","-3","7","8","-2","3","8","1"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: random median 26\", \"actual\": [\"1/2\", \"1/2\"], \"expected\": [\"1/2\", \"1/2\"], \"passed\": true}, {\"check\": \"regression: random median 29\", \"actual\": [\"8\", \"8\", \"8\"], \"expected\": [\"8\", \"8\", \"8\"], \"passed\": true}, {\"check\": \"regression: random median 34\", \"actual\": [\"2\", \"2\"], \"expected\": [\"2\", \"2\"], \"passed\": true}, {\"check\": \"control: even kernel\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"control: even kernel four\", \"actual\": \"bad-kernel\", \"expected\": \"bad-kernel\", \"passed\": true}, {\"check\": \"control: random median 1\", \"actual\": [\"2\", \"3\", \"4\", \"-2\"], \"expected\": [\"2\", \"3\", \"4\", \"-2\"], \"passed\": true}, {\"check\": \"control: random median 3\", \"actual\": [\"2\", \"-3\", \"7\", \"8\", \"-2\", \"3\", \"8\", \"1\"], \"expected\": [\"2\", \"-3\", \"7\", \"8\", \"-2\", \"3\", \"8\", \"1\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}