{"abstract":"Downsampling 48 kHz to 16 kHz keeps content up to 24 kHz, which aliases.","category":"Digital signal filters","checks":7,"contract":"Input [fin, fout, rolloff] (positive integer rates, rolloff in (0, 1]). Reduce fout/fin to up/down = L/M by gcd, intermediate rate = fin L, anti-alias cutoff = min(fin, fout)/2 * rolloff in Hz and normalized to the intermediate Nyquist. Return {\"up\", \"down\", \"intermediate_rate\", \"cutoff_hz\", \"cutoff_norm\"} or \"bad-spec\".","evaluation_group":"w2-digital_signal_filters-rational-resampling-plan","failed_approach":"The attempted repair always uses fout / 2, which is wrong when upsampling.","family":"w2-digital_signal_filters-rational-resampling-plan-anti-alias-cutoff-reference","id":"FA-91686","implementations":{"attempt":{"sha256":"6a507196c030b49d60dd1005e6167fcb2455df8e38cdc32daac9714cc1942a85","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    fin, fout, roll = x[0], x[1], Fraction(x[2])\n    if fin <= 0 or fout <= 0 or not 0 < roll <= 1:\n        return 'bad-spec'\n    g = math.gcd(fin, fout)\n    L, M = fout // g, fin // g\n    inter = fin * L\n    cutoff = Fraction(fout, 2) * roll\n    return {'up': L, 'down': M, 'intermediate_rate': inter, 'cutoff_hz': str(cutoff), 'cutoff_norm': str(cutoff / Fraction(inter, 2))}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}]]]\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":"0e465b206f1ceddebcec5f4643d91689941612c61ca3189d07b43d8c6ab13a94","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    fin, fout, roll = x[0], x[1], Fraction(x[2])\n    if fin <= 0 or fout <= 0 or not 0 < roll <= 1:\n        return 'bad-spec'\n    g = math.gcd(fin, fout)\n    L, M = fout // g, fin // g\n    inter = fin * L\n    cutoff = Fraction(max(fin, fout), 2) * roll\n    return {'up': L, 'down': M, 'intermediate_rate': inter, 'cutoff_hz': str(cutoff), 'cutoff_norm': str(cutoff / Fraction(inter, 2))}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}]]]\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":"6c17f9eeb9594800427783a9e34bbc32b209c3ff222187cbc9afa1cf1131fade","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    fin, fout, roll = x[0], x[1], Fraction(x[2])\n    if fin <= 0 or fout <= 0 or not 0 < roll <= 1:\n        return 'bad-spec'\n    g = math.gcd(fin, fout)\n    L, M = fout // g, fin // g\n    inter = fin * L\n    cutoff = Fraction(min(fin, fout), 2) * roll\n    return {'up': L, 'down': M, 'intermediate_rate': inter, 'cutoff_hz': str(cutoff), 'cutoff_norm': str(cutoff / Fraction(inter, 2))}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: downsample by 3', [48000, 16000, '1'], {'up': 1, 'down': 3, 'intermediate_rate': 48000, 'cutoff_hz': '8000', 'cutoff_norm': '1/3'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}]], [['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}]], [['regression: 48k to 44.1k', [48000, 44100, '9/10'], {'up': 147, 'down': 160, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: 44.1k to 48k', [44100, 48000, '9/10'], {'up': 160, 'down': 147, 'intermediate_rate': 7056000, 'cutoff_hz': '19845', 'cutoff_norm': '9/1600'}], ['regression: odd ratio', [22050, 32000, '19/20'], {'up': 640, 'down': 441, 'intermediate_rate': 14112000, 'cutoff_hz': '41895/4', 'cutoff_norm': '19/12800'}], ['control: identity', [16000, 16000, '1'], {'up': 1, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '8000', 'cutoff_norm': '1'}], ['control: bad rolloff', [8000, 16000, '0'], 'bad-spec'], ['regression: coprime rates', [7, 5, '1/2'], {'up': 5, 'down': 7, 'intermediate_rate': 35, 'cutoff_hz': '5/4', 'cutoff_norm': '1/14'}], ['regression: upsample by 2', [8000, 16000, '4/5'], {'up': 2, 'down': 1, 'intermediate_rate': 16000, 'cutoff_hz': '3200', 'cutoff_norm': '2/5'}]]]\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-rational-resampling-plan-anti-alias-cutoff-reference","generated_at":"2026-09-29T14:51:38.238831+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Sample-rate converters are planned from these numbers; a wrong cutoff reference aliases or dulls the output.","repair":"Use min(fin, fout) / 2 times the rolloff.","root_cause":"The cutoff uses max(fin, fout) / 2.","sha256":"167beabbf154a9793bc2d2c453a2414ce6c7c5f8998006d5fc69ddc23e38d6eb","title":"Resampling plan sets the cutoff from the higher rate · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.586,"exit_code":1,"observations":[{"actual":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":160,"intermediate_rate":7056000,"up":147},"check":"regression: 48k to 44.1k","expected":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":160,"intermediate_rate":7056000,"up":147},"passed":true},{"actual":{"cutoff_hz":"21600","cutoff_norm":"3/490","down":147,"intermediate_rate":7056000,"up":160},"check":"regression: 44.1k to 48k","expected":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":147,"intermediate_rate":7056000,"up":160},"passed":false},{"actual":{"cutoff_hz":"6400","cutoff_norm":"4/5","down":1,"intermediate_rate":16000,"up":2},"check":"regression: upsample by 2","expected":{"cutoff_hz":"3200","cutoff_norm":"2/5","down":1,"intermediate_rate":16000,"up":2},"passed":false},{"actual":{"cutoff_hz":"8000","cutoff_norm":"1","down":1,"intermediate_rate":16000,"up":1},"check":"control: identity","expected":{"cutoff_hz":"8000","cutoff_norm":"1","down":1,"intermediate_rate":16000,"up":1},"passed":true},{"actual":"bad-spec","check":"control: bad rolloff","expected":"bad-spec","passed":true},{"actual":{"cutoff_hz":"8000","cutoff_norm":"1/3","down":3,"intermediate_rate":48000,"up":1},"check":"regression: downsample by 3","expected":{"cutoff_hz":"8000","cutoff_norm":"1/3","down":3,"intermediate_rate":48000,"up":1},"passed":true},{"actual":{"cutoff_hz":"15200","cutoff_norm":"19/8820","down":441,"intermediate_rate":14112000,"up":640},"check":"regression: odd ratio","expected":{"cutoff_hz":"41895/4","cutoff_norm":"19/12800","down":441,"intermediate_rate":14112000,"up":640},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: 48k to 44.1k\", \"actual\": {\"up\": 147, \"down\": 160, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"expected\": {\"up\": 147, \"down\": 160, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"passed\": true}, {\"check\": \"regression: 44.1k to 48k\", \"actual\": {\"up\": 160, \"down\": 147, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"21600\", \"cutoff_norm\": \"3/490\"}, \"expected\": {\"up\": 160, \"down\": 147, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"passed\": false}, {\"check\": \"regression: upsample by 2\", \"actual\": {\"up\": 2, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"6400\", \"cutoff_norm\": \"4/5\"}, \"expected\": {\"up\": 2, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"3200\", \"cutoff_norm\": \"2/5\"}, \"passed\": false}, {\"check\": \"control: identity\", \"actual\": {\"up\": 1, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1\"}, \"expected\": {\"up\": 1, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1\"}, \"passed\": true}, {\"check\": \"control: bad rolloff\", \"actual\": \"bad-spec\", \"expected\": \"bad-spec\", \"passed\": true}, {\"check\": \"regression: downsample by 3\", \"actual\": {\"up\": 1, \"down\": 3, \"intermediate_rate\": 48000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1/3\"}, \"expected\": {\"up\": 1, \"down\": 3, \"intermediate_rate\": 48000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1/3\"}, \"passed\": true}, {\"check\": \"regression: odd ratio\", \"actual\": {\"up\": 640, \"down\": 441, \"intermediate_rate\": 14112000, \"cutoff_hz\": \"15200\", \"cutoff_norm\": \"19/8820\"}, \"expected\": {\"up\": 640, \"down\": 441, \"intermediate_rate\": 14112000, \"cutoff_hz\": \"41895/4\", \"cutoff_norm\": \"19/12800\"}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.209,"exit_code":1,"observations":[{"actual":{"cutoff_hz":"21600","cutoff_norm":"3/490","down":160,"intermediate_rate":7056000,"up":147},"check":"regression: 48k to 44.1k","expected":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":160,"intermediate_rate":7056000,"up":147},"passed":false},{"actual":{"cutoff_hz":"21600","cutoff_norm":"3/490","down":147,"intermediate_rate":7056000,"up":160},"check":"regression: 44.1k to 48k","expected":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":147,"intermediate_rate":7056000,"up":160},"passed":false},{"actual":{"cutoff_hz":"6400","cutoff_norm":"4/5","down":1,"intermediate_rate":16000,"up":2},"check":"regression: upsample by 2","expected":{"cutoff_hz":"3200","cutoff_norm":"2/5","down":1,"intermediate_rate":16000,"up":2},"passed":false},{"actual":{"cutoff_hz":"8000","cutoff_norm":"1","down":1,"intermediate_rate":16000,"up":1},"check":"control: identity","expected":{"cutoff_hz":"8000","cutoff_norm":"1","down":1,"intermediate_rate":16000,"up":1},"passed":true},{"actual":"bad-spec","check":"control: bad rolloff","expected":"bad-spec","passed":true},{"actual":{"cutoff_hz":"24000","cutoff_norm":"1","down":3,"intermediate_rate":48000,"up":1},"check":"regression: downsample by 3","expected":{"cutoff_hz":"8000","cutoff_norm":"1/3","down":3,"intermediate_rate":48000,"up":1},"passed":false},{"actual":{"cutoff_hz":"15200","cutoff_norm":"19/8820","down":441,"intermediate_rate":14112000,"up":640},"check":"regression: odd ratio","expected":{"cutoff_hz":"41895/4","cutoff_norm":"19/12800","down":441,"intermediate_rate":14112000,"up":640},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: 48k to 44.1k\", \"actual\": {\"up\": 147, \"down\": 160, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"21600\", \"cutoff_norm\": \"3/490\"}, \"expected\": {\"up\": 147, \"down\": 160, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"passed\": false}, {\"check\": \"regression: 44.1k to 48k\", \"actual\": {\"up\": 160, \"down\": 147, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"21600\", \"cutoff_norm\": \"3/490\"}, \"expected\": {\"up\": 160, \"down\": 147, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"passed\": false}, {\"check\": \"regression: upsample by 2\", \"actual\": {\"up\": 2, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"6400\", \"cutoff_norm\": \"4/5\"}, \"expected\": {\"up\": 2, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"3200\", \"cutoff_norm\": \"2/5\"}, \"passed\": false}, {\"check\": \"control: identity\", \"actual\": {\"up\": 1, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1\"}, \"expected\": {\"up\": 1, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1\"}, \"passed\": true}, {\"check\": \"control: bad rolloff\", \"actual\": \"bad-spec\", \"expected\": \"bad-spec\", \"passed\": true}, {\"check\": \"regression: downsample by 3\", \"actual\": {\"up\": 1, \"down\": 3, \"intermediate_rate\": 48000, \"cutoff_hz\": \"24000\", \"cutoff_norm\": \"1\"}, \"expected\": {\"up\": 1, \"down\": 3, \"intermediate_rate\": 48000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1/3\"}, \"passed\": false}, {\"check\": \"regression: odd ratio\", \"actual\": {\"up\": 640, \"down\": 441, \"intermediate_rate\": 14112000, \"cutoff_hz\": \"15200\", \"cutoff_norm\": \"19/8820\"}, \"expected\": {\"up\": 640, \"down\": 441, \"intermediate_rate\": 14112000, \"cutoff_hz\": \"41895/4\", \"cutoff_norm\": \"19/12800\"}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":40.545,"exit_code":0,"observations":[{"actual":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":160,"intermediate_rate":7056000,"up":147},"check":"regression: 48k to 44.1k","expected":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":160,"intermediate_rate":7056000,"up":147},"passed":true},{"actual":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":147,"intermediate_rate":7056000,"up":160},"check":"regression: 44.1k to 48k","expected":{"cutoff_hz":"19845","cutoff_norm":"9/1600","down":147,"intermediate_rate":7056000,"up":160},"passed":true},{"actual":{"cutoff_hz":"3200","cutoff_norm":"2/5","down":1,"intermediate_rate":16000,"up":2},"check":"regression: upsample by 2","expected":{"cutoff_hz":"3200","cutoff_norm":"2/5","down":1,"intermediate_rate":16000,"up":2},"passed":true},{"actual":{"cutoff_hz":"8000","cutoff_norm":"1","down":1,"intermediate_rate":16000,"up":1},"check":"control: identity","expected":{"cutoff_hz":"8000","cutoff_norm":"1","down":1,"intermediate_rate":16000,"up":1},"passed":true},{"actual":"bad-spec","check":"control: bad rolloff","expected":"bad-spec","passed":true},{"actual":{"cutoff_hz":"8000","cutoff_norm":"1/3","down":3,"intermediate_rate":48000,"up":1},"check":"regression: downsample by 3","expected":{"cutoff_hz":"8000","cutoff_norm":"1/3","down":3,"intermediate_rate":48000,"up":1},"passed":true},{"actual":{"cutoff_hz":"41895/4","cutoff_norm":"19/12800","down":441,"intermediate_rate":14112000,"up":640},"check":"regression: odd ratio","expected":{"cutoff_hz":"41895/4","cutoff_norm":"19/12800","down":441,"intermediate_rate":14112000,"up":640},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: 48k to 44.1k\", \"actual\": {\"up\": 147, \"down\": 160, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"expected\": {\"up\": 147, \"down\": 160, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"passed\": true}, {\"check\": \"regression: 44.1k to 48k\", \"actual\": {\"up\": 160, \"down\": 147, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"expected\": {\"up\": 160, \"down\": 147, \"intermediate_rate\": 7056000, \"cutoff_hz\": \"19845\", \"cutoff_norm\": \"9/1600\"}, \"passed\": true}, {\"check\": \"regression: upsample by 2\", \"actual\": {\"up\": 2, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"3200\", \"cutoff_norm\": \"2/5\"}, \"expected\": {\"up\": 2, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"3200\", \"cutoff_norm\": \"2/5\"}, \"passed\": true}, {\"check\": \"control: identity\", \"actual\": {\"up\": 1, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1\"}, \"expected\": {\"up\": 1, \"down\": 1, \"intermediate_rate\": 16000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1\"}, \"passed\": true}, {\"check\": \"control: bad rolloff\", \"actual\": \"bad-spec\", \"expected\": \"bad-spec\", \"passed\": true}, {\"check\": \"regression: downsample by 3\", \"actual\": {\"up\": 1, \"down\": 3, \"intermediate_rate\": 48000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1/3\"}, \"expected\": {\"up\": 1, \"down\": 3, \"intermediate_rate\": 48000, \"cutoff_hz\": \"8000\", \"cutoff_norm\": \"1/3\"}, \"passed\": true}, {\"check\": \"regression: odd ratio\", \"actual\": {\"up\": 640, \"down\": 441, \"intermediate_rate\": 14112000, \"cutoff_hz\": \"41895/4\", \"cutoff_norm\": \"19/12800\"}, \"expected\": {\"up\": 640, \"down\": 441, \"intermediate_rate\": 14112000, \"cutoff_hz\": \"41895/4\", \"cutoff_norm\": \"19/12800\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}