{"abstract":"A large request is admitted into an almost full bucket and overflows it.","category":"Rate limiter algorithms","checks":6,"contract":"Input {capacity, leak_per_s, requests [[t_ms, cost]]} with nondecreasing t. The water level drains continuously at leak_per_s units per second (exact rationals) but never below zero; the drain clock advances at every request. A request is admitted iff level + cost <= capacity, raising the level by cost; a denied request leaves the level unchanged. Return [decisions, final level as a fraction string].","evaluation_group":"w2-rate_limiter_algorithms-leaky-bucket-meter","failed_approach":"A strict comparison rejects requests that exactly fill the bucket.","family":"w2-rate_limiter_algorithms-leaky-bucket-meter-admission","id":"FA-73496","implementations":{"attempt":{"sha256":"38796907755c2b30b2fbce7139759acd33eaccc70ba3d9f3710cab2243364961","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    cap = x['capacity']\n    leak = x['leak_per_s']\n    level = Fraction(0)\n    last = 0\n    out = []\n    for t, cost in x['requests']:\n        level = max(Fraction(0), level - Fraction((t - last) * leak, 1000))\n        last = t\n        if level + cost < cap:\n            level += cost\n            out.append('allow')\n        else:\n            out.append('deny')\n    return [out, str(level)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1501, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '1999/500']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20501, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '3499/1000']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [401, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1001, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [601, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[781, 3],\n                 [1209, 2],\n                 [1536, 1],\n                 [2095, 2],\n                 [2724, 2],\n                 [3100, 1],\n                 [3484, 2],\n                 [3740, 2],\n                 [4367, 3],\n                 [4423, 2]]},\n   [['allow', 'allow', 'allow', 'deny', 'allow', 'allow', 'deny', 'deny', 'allow', 'deny'],\n    '1179/250']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1502, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '999/250']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20502, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '1749/500']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [402, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1002, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [602, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[589, 3],\n                 [638, 1],\n                 [745, 3],\n                 [2131, 2],\n                 [2216, 1],\n                 [2400, 1],\n                 [3010, 3],\n                 [3050, 3],\n                 [4494, 3],\n                 [4689, 1]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow', 'allow', 'deny', 'deny', 'allow', 'allow'],\n    '19/5']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1503, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '1997/500']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20503, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '3497/1000']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [403, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1003, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [603, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[952, 1],\n                 [1197, 1],\n                 [1505, 1],\n                 [2785, 2],\n                 [2886, 3],\n                 [3133, 3],\n                 [3501, 1],\n                 [3696, 3],\n                 [4546, 2],\n                 [4936, 3]]},\n   [['allow', 'allow', 'allow', 'allow', 'allow', 'deny', 'allow', 'deny', 'allow', 'deny'],\n    '1849/500']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1504, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '499/125']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20504, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '437/125']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [404, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1004, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [604, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[81, 3],\n                 [993, 2],\n                 [1192, 3],\n                 [2031, 1],\n                 [2228, 3],\n                 [2879, 2],\n                 [2930, 2],\n                 [3521, 3],\n                 [4067, 2],\n                 [4522, 3]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow', 'deny', 'deny', 'deny', 'allow', 'deny'],\n    '1059/500']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1505, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '399/100']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20505, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '699/200']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [405, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1005, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [605, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[294, 3],\n                 [1702, 1],\n                 [1855, 3],\n                 [1921, 3],\n                 [2460, 1],\n                 [2482, 3],\n                 [3497, 3],\n                 [4189, 1],\n                 [4252, 3],\n                 [4982, 2]]},\n   [['allow', 'allow', 'allow', 'deny', 'allow', 'deny', 'allow', 'allow', 'deny', 'allow'],\n    '578/125']]]]\nfor label, args, expected in cases[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":"724c0adc50b24a85d142c668ee6abfcad2ca91074251d5832d977aba01ba641f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    cap = x['capacity']\n    leak = x['leak_per_s']\n    level = Fraction(0)\n    last = 0\n    out = []\n    for t, cost in x['requests']:\n        level = max(Fraction(0), level - Fraction((t - last) * leak, 1000))\n        last = t\n        if level < cap:\n            level += cost\n            out.append('allow')\n        else:\n            out.append('deny')\n    return [out, str(level)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1501, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '1999/500']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20501, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '3499/1000']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [401, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1001, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [601, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[781, 3],\n                 [1209, 2],\n                 [1536, 1],\n                 [2095, 2],\n                 [2724, 2],\n                 [3100, 1],\n                 [3484, 2],\n                 [3740, 2],\n                 [4367, 3],\n                 [4423, 2]]},\n   [['allow', 'allow', 'allow', 'deny', 'allow', 'allow', 'deny', 'deny', 'allow', 'deny'],\n    '1179/250']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1502, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '999/250']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20502, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '1749/500']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [402, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1002, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [602, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[589, 3],\n                 [638, 1],\n                 [745, 3],\n                 [2131, 2],\n                 [2216, 1],\n                 [2400, 1],\n                 [3010, 3],\n                 [3050, 3],\n                 [4494, 3],\n                 [4689, 1]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow', 'allow', 'deny', 'deny', 'allow', 'allow'],\n    '19/5']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1503, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '1997/500']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20503, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '3497/1000']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [403, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1003, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [603, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[952, 1],\n                 [1197, 1],\n                 [1505, 1],\n                 [2785, 2],\n                 [2886, 3],\n                 [3133, 3],\n                 [3501, 1],\n                 [3696, 3],\n                 [4546, 2],\n                 [4936, 3]]},\n   [['allow', 'allow', 'allow', 'allow', 'allow', 'deny', 'allow', 'deny', 'allow', 'deny'],\n    '1849/500']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1504, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '499/125']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20504, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '437/125']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [404, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1004, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [604, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[81, 3],\n                 [993, 2],\n                 [1192, 3],\n                 [2031, 1],\n                 [2228, 3],\n                 [2879, 2],\n                 [2930, 2],\n                 [3521, 3],\n                 [4067, 2],\n                 [4522, 3]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow', 'deny', 'deny', 'deny', 'allow', 'deny'],\n    '1059/500']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1505, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '399/100']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20505, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '699/200']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [405, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1005, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [605, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[294, 3],\n                 [1702, 1],\n                 [1855, 3],\n                 [1921, 3],\n                 [2460, 1],\n                 [2482, 3],\n                 [3497, 3],\n                 [4189, 1],\n                 [4252, 3],\n                 [4982, 2]]},\n   [['allow', 'allow', 'allow', 'deny', 'allow', 'deny', 'allow', 'allow', 'deny', 'allow'],\n    '578/125']]]]\nfor label, args, expected in cases[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":"87019a2a4d4cad60d1df32476ac7faf5eeaea95a71bd745285150e5ea159c338","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    cap = x['capacity']\n    leak = x['leak_per_s']\n    level = Fraction(0)\n    last = 0\n    out = []\n    for t, cost in x['requests']:\n        level = max(Fraction(0), level - Fraction((t - last) * leak, 1000))\n        last = t\n        if level + cost <= cap:\n            level += cost\n            out.append('allow')\n        else:\n            out.append('deny')\n    return [out, str(level)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1501, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '1999/500']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20501, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '3499/1000']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [401, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1001, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [601, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[781, 3],\n                 [1209, 2],\n                 [1536, 1],\n                 [2095, 2],\n                 [2724, 2],\n                 [3100, 1],\n                 [3484, 2],\n                 [3740, 2],\n                 [4367, 3],\n                 [4423, 2]]},\n   [['allow', 'allow', 'allow', 'deny', 'allow', 'allow', 'deny', 'deny', 'allow', 'deny'],\n    '1179/250']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1502, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '999/250']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20502, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '1749/500']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [402, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1002, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [602, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[589, 3],\n                 [638, 1],\n                 [745, 3],\n                 [2131, 2],\n                 [2216, 1],\n                 [2400, 1],\n                 [3010, 3],\n                 [3050, 3],\n                 [4494, 3],\n                 [4689, 1]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow', 'allow', 'deny', 'deny', 'allow', 'allow'],\n    '19/5']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1503, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '1997/500']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20503, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '3497/1000']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [403, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1003, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [603, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[952, 1],\n                 [1197, 1],\n                 [1505, 1],\n                 [2785, 2],\n                 [2886, 3],\n                 [3133, 3],\n                 [3501, 1],\n                 [3696, 3],\n                 [4546, 2],\n                 [4936, 3]]},\n   [['allow', 'allow', 'allow', 'allow', 'allow', 'deny', 'allow', 'deny', 'allow', 'deny'],\n    '1849/500']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1504, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '499/125']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20504, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '437/125']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [404, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1004, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [604, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[81, 3],\n                 [993, 2],\n                 [1192, 3],\n                 [2031, 1],\n                 [2228, 3],\n                 [2879, 2],\n                 [2930, 2],\n                 [3521, 3],\n                 [4067, 2],\n                 [4522, 3]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow', 'deny', 'deny', 'deny', 'allow', 'deny'],\n    '1059/500']]],\n [['fill and drain',\n   {'capacity': 5, 'leak_per_s': 2, 'requests': [[0, 2], [0, 2], [0, 2], [500, 1], [1505, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'allow'], '399/100']],\n  ['idle does not bank credit',\n   {'capacity': 4, 'leak_per_s': 1, 'requests': [[0, 1], [20000, 4], [20000, 1], [20505, 1]]},\n   [['allow', 'allow', 'deny', 'deny'], '699/200']],\n  ['sub-second leak',\n   {'capacity': 3, 'leak_per_s': 4, 'requests': [[0, 3], [250, 1], [405, 1], [600, 1], [900, 2]]},\n   [['allow', 'allow', 'deny', 'allow', 'deny'], '7/5']],\n  ['exact fit',\n   {'capacity': 6, 'leak_per_s': 3, 'requests': [[0, 6], [1000, 3], [1005, 1], [2000, 3]]},\n   [['allow', 'allow', 'deny', 'allow'], '6']],\n  ['denials do not fill',\n   {'capacity': 4, 'leak_per_s': 2, 'requests': [[0, 3], [100, 3], [200, 3], [605, 2], [700, 1]]},\n   [['allow', 'deny', 'deny', 'allow', 'deny'], '18/5']],\n  ['random stream',\n   {'capacity': 5,\n    'leak_per_s': 2,\n    'requests': [[294, 3],\n                 [1702, 1],\n                 [1855, 3],\n                 [1921, 3],\n                 [2460, 1],\n                 [2482, 3],\n                 [3497, 3],\n                 [4189, 1],\n                 [4252, 3],\n                 [4982, 2]]},\n   [['allow', 'allow', 'allow', 'deny', 'allow', 'deny', 'allow', 'allow', 'deny', 'allow'],\n    '578/125']]]]\nfor label, args, expected in cases[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 stipulated constants and pre-hashed or explicitly hashed inputs; it is not a production implementation and makes no claim of conformance to any library or paper beyond the stated contract. 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-rate_limiter_algorithms-leaky-bucket-meter-admission","generated_at":"2026-09-29T14:48:48.139065+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Leaky-bucket meters police sustained rates for network and API traffic; drain and admission rules decide how much burst is tolerated after idleness.","repair":"Admit only when level + cost fits within capacity.","root_cause":"Admission only checks that the bucket is not already full.","sha256":"72a4fa98291edf7a09624b72ad72afed811bfd37d8a324e14c3f8790fa745719","title":"Leaky bucket meter: admission ignores the request cost · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.848,"exit_code":1,"observations":[{"actual":[["allow","allow","deny","allow","allow"],"1999/500"],"check":"fill and drain","expected":[["allow","allow","deny","allow","allow"],"1999/500"],"passed":true},{"actual":[["allow","deny","allow","allow"],"1499/1000"],"check":"idle does not bank credit","expected":[["allow","allow","deny","deny"],"3499/1000"],"passed":false},{"actual":[["deny","allow","allow","allow","allow"],"12/5"],"check":"sub-second leak","expected":[["allow","allow","deny","allow","deny"],"7/5"],"passed":false},{"actual":[["deny","allow","allow","allow"],"4"],"check":"exact fit","expected":[["allow","allow","deny","allow"],"6"],"passed":false},{"actual":[["allow","deny","deny","allow","deny"],"18/5"],"check":"denials do not fill","expected":[["allow","deny","deny","allow","deny"],"18/5"],"passed":true},{"actual":[["allow","allow","allow","deny","allow","allow","deny","deny","allow","deny"],"1179/250"],"check":"random stream","expected":[["allow","allow","allow","deny","allow","allow","deny","deny","allow","deny"],"1179/250"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fill and drain\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"allow\"], \"1999/500\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"allow\"], \"1999/500\"], \"passed\": true}, {\"check\": \"idle does not bank credit\", \"actual\": [[\"allow\", \"deny\", \"allow\", \"allow\"], \"1499/1000\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"deny\"], \"3499/1000\"], \"passed\": false}, {\"check\": \"sub-second leak\", \"actual\": [[\"deny\", \"allow\", \"allow\", \"allow\", \"allow\"], \"12/5\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"deny\"], \"7/5\"], \"passed\": false}, {\"check\": \"exact fit\", \"actual\": [[\"deny\", \"allow\", \"allow\", \"allow\"], \"4\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\"], \"6\"], \"passed\": false}, {\"check\": \"denials do not fill\", \"actual\": [[\"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"18/5\"], \"expected\": [[\"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"18/5\"], \"passed\": true}, {\"check\": \"random stream\", \"actual\": [[\"allow\", \"allow\", \"allow\", \"deny\", \"allow\", \"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"1179/250\"], \"expected\": [[\"allow\", \"allow\", \"allow\", \"deny\", \"allow\", \"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"1179/250\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.089,"exit_code":1,"observations":[{"actual":[["allow","allow","allow","deny","allow"],"2499/500"],"check":"fill and drain","expected":[["allow","allow","deny","allow","allow"],"1999/500"],"passed":false},{"actual":[["allow","allow","deny","allow"],"4499/1000"],"check":"idle does not bank credit","expected":[["allow","allow","deny","deny"],"3499/1000"],"passed":false},{"actual":[["allow","allow","allow","allow","allow"],"22/5"],"check":"sub-second leak","expected":[["allow","allow","deny","allow","deny"],"7/5"],"passed":false},{"actual":[["allow","allow","allow","allow"],"7"],"check":"exact fit","expected":[["allow","allow","deny","allow"],"6"],"passed":false},{"actual":[["allow","allow","deny","deny","deny"],"23/5"],"check":"denials do not fill","expected":[["allow","deny","deny","allow","deny"],"18/5"],"passed":false},{"actual":[["allow","allow","allow","allow","allow","deny","allow","deny","allow","deny"],"1929/250"],"check":"random stream","expected":[["allow","allow","allow","deny","allow","allow","deny","deny","allow","deny"],"1179/250"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fill and drain\", \"actual\": [[\"allow\", \"allow\", \"allow\", \"deny\", \"allow\"], \"2499/500\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"allow\"], \"1999/500\"], \"passed\": false}, {\"check\": \"idle does not bank credit\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"allow\"], \"4499/1000\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"deny\"], \"3499/1000\"], \"passed\": false}, {\"check\": \"sub-second leak\", \"actual\": [[\"allow\", \"allow\", \"allow\", \"allow\", \"allow\"], \"22/5\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"deny\"], \"7/5\"], \"passed\": false}, {\"check\": \"exact fit\", \"actual\": [[\"allow\", \"allow\", \"allow\", \"allow\"], \"7\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\"], \"6\"], \"passed\": false}, {\"check\": \"denials do not fill\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"deny\", \"deny\"], \"23/5\"], \"expected\": [[\"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"18/5\"], \"passed\": false}, {\"check\": \"random stream\", \"actual\": [[\"allow\", \"allow\", \"allow\", \"allow\", \"allow\", \"deny\", \"allow\", \"deny\", \"allow\", \"deny\"], \"1929/250\"], \"expected\": [[\"allow\", \"allow\", \"allow\", \"deny\", \"allow\", \"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"1179/250\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.16,"exit_code":0,"observations":[{"actual":[["allow","allow","deny","allow","allow"],"1999/500"],"check":"fill and drain","expected":[["allow","allow","deny","allow","allow"],"1999/500"],"passed":true},{"actual":[["allow","allow","deny","deny"],"3499/1000"],"check":"idle does not bank credit","expected":[["allow","allow","deny","deny"],"3499/1000"],"passed":true},{"actual":[["allow","allow","deny","allow","deny"],"7/5"],"check":"sub-second leak","expected":[["allow","allow","deny","allow","deny"],"7/5"],"passed":true},{"actual":[["allow","allow","deny","allow"],"6"],"check":"exact fit","expected":[["allow","allow","deny","allow"],"6"],"passed":true},{"actual":[["allow","deny","deny","allow","deny"],"18/5"],"check":"denials do not fill","expected":[["allow","deny","deny","allow","deny"],"18/5"],"passed":true},{"actual":[["allow","allow","allow","deny","allow","allow","deny","deny","allow","deny"],"1179/250"],"check":"random stream","expected":[["allow","allow","allow","deny","allow","allow","deny","deny","allow","deny"],"1179/250"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fill and drain\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"allow\"], \"1999/500\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"allow\"], \"1999/500\"], \"passed\": true}, {\"check\": \"idle does not bank credit\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"deny\"], \"3499/1000\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"deny\"], \"3499/1000\"], \"passed\": true}, {\"check\": \"sub-second leak\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"deny\"], \"7/5\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\", \"deny\"], \"7/5\"], \"passed\": true}, {\"check\": \"exact fit\", \"actual\": [[\"allow\", \"allow\", \"deny\", \"allow\"], \"6\"], \"expected\": [[\"allow\", \"allow\", \"deny\", \"allow\"], \"6\"], \"passed\": true}, {\"check\": \"denials do not fill\", \"actual\": [[\"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"18/5\"], \"expected\": [[\"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"18/5\"], \"passed\": true}, {\"check\": \"random stream\", \"actual\": [[\"allow\", \"allow\", \"allow\", \"deny\", \"allow\", \"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"1179/250\"], \"expected\": [[\"allow\", \"allow\", \"allow\", \"deny\", \"allow\", \"allow\", \"deny\", \"deny\", \"allow\", \"deny\"], \"1179/250\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}