{"abstract":"A request whose cost exactly equals the refilled balance is denied.","category":"Rate limiter algorithms","checks":8,"contract":"Input {capacity, rate (tokens per second), requests [[t_ms, cost]]}. The bucket starts full at t=0. At each request, elapsed = max(0, t - last); tokens = min(capacity, tokens + elapsed*rate/1000) in exact rational arithmetic; last = max(last, t) so a regressing clock neither drains nor re-credits. A cost above capacity can never succeed (\"never\"). Otherwise allow when tokens >= cost and deduct; else deny with wait = ceil((cost - tokens) * 1000 / rate) ms. Return [[decision, wait]], final tokens].","evaluation_group":"w2-rate_limiter_algorithms-token-bucket-exact","failed_approach":"Rounding the fractional balance admits requests that are still short of tokens.","family":"w2-rate_limiter_algorithms-token-bucket-exact-admit-boundary","id":"FA-73366","implementations":{"attempt":{"sha256":"72d2132bb554e3d0c48657e5057fd063370031520762ff7614b4087b726f2af3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    C = x['capacity']\n    rate = x['rate']\n    tokens = Fraction(C)\n    last = 0\n    out = []\n    for t, cost in x['requests']:\n        elapsed = max(0, t - last)\n        tokens = min(Fraction(C), tokens + Fraction(elapsed * rate, 1000))\n        last = max(last, t)\n        if cost > C:\n            out.append(['never', 0])\n        elif round(tokens) >= cost:\n            tokens -= cost\n            out.append(['allow', 0])\n        else:\n            out.append(['deny', math.ceil((cost - tokens) * 1000 / rate)])\n    return [out, str(tokens)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [100, 1], [1000, 2], [1401, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 400],\n     ['allow', 0],\n     ['deny', 99]],\n    '401/500']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10001, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 333], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3100, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3710, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3001, 3], [3001, 5]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [2334, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '1/500']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [901, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '703/1000']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[1025, 1],\n                 [1038, 3],\n                 [1399, 1],\n                 [1944, 3],\n                 [2745, 1],\n                 [2753, 1],\n                 [3169, 1],\n                 [4025, 1],\n                 [4086, 3],\n                 [4305, 3]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['deny', 126],\n     ['deny', 581],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 439],\n     ['deny', 220]],\n    '64/25']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [200, 1], [1000, 2], [1402, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 300],\n     ['allow', 0],\n     ['deny', 98]],\n    '201/250']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10002, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 332], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3200, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3720, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3002, 3], [3002, 6]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [2668, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '251/250']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [902, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '353/500']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[679, 3],\n                 [889, 1],\n                 [1479, 1],\n                 [1523, 1],\n                 [1681, 1],\n                 [2074, 3],\n                 [2401, 2],\n                 [2669, 3],\n                 [4187, 3],\n                 [4538, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 156],\n     ['allow', 0],\n     ['deny', 1105],\n     ['deny', 278],\n     ['deny', 510],\n     ['allow', 0],\n     ['allow', 0]],\n    '351/500']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [300, 1], [1000, 2], [1403, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 200],\n     ['allow', 0],\n     ['deny', 97]],\n    '403/500']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10003, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 331], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3300, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3730, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3003, 3], [3003, 7]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3002, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '1003/500']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [903, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '709/1000']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[476, 2],\n                 [1005, 3],\n                 [1092, 1],\n                 [1140, 2],\n                 [2416, 2],\n                 [2727, 2],\n                 [3540, 3],\n                 [3809, 1],\n                 [3822, 1],\n                 [4130, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['deny', 384],\n     ['deny', 836],\n     ['allow', 0],\n     ['deny', 249],\n     ['allow', 0],\n     ['deny', 167],\n     ['deny', 154],\n     ['allow', 0]],\n    '77/250']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [400, 1], [1000, 2], [1404, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 100],\n     ['allow', 0],\n     ['deny', 96]],\n    '101/125']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10004, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 330], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3400, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3740, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3004, 3], [3004, 8]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3336, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '376/125']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [904, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '89/125']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[295, 3],\n                 [481, 2],\n                 [603, 2],\n                 [1079, 3],\n                 [1690, 3],\n                 [1700, 3],\n                 [2433, 3],\n                 [3280, 3],\n                 [4573, 3],\n                 [4680, 3]]},\n   [[['allow', 0],\n     ['deny', 314],\n     ['deny', 192],\n     ['deny', 216],\n     ['allow', 0],\n     ['deny', 1095],\n     ['deny', 362],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 1115]],\n    '77/100']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [500, 1], [1000, 2], [1405, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 500],\n     ['allow', 0]],\n    '81/100']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10005, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 329], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3500, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3750, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3005, 3], [3005, 9]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3670, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '401/100']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [905, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '143/200']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[1144, 3],\n                 [1657, 3],\n                 [1896, 3],\n                 [2302, 2],\n                 [2570, 2],\n                 [3012, 1],\n                 [3025, 1],\n                 [3251, 1],\n                 [4294, 1],\n                 [4860, 2]]},\n   [[['allow', 0],\n     ['deny', 487],\n     ['deny', 248],\n     ['allow', 0],\n     ['deny', 74],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0]],\n    '54/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":"a29f922b4e8d1520ca75af6f040ea89cf752c5b7a90e6528cf011aa4671425f8","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    C = x['capacity']\n    rate = x['rate']\n    tokens = Fraction(C)\n    last = 0\n    out = []\n    for t, cost in x['requests']:\n        elapsed = max(0, t - last)\n        tokens = min(Fraction(C), tokens + Fraction(elapsed * rate, 1000))\n        last = max(last, t)\n        if cost > C:\n            out.append(['never', 0])\n        elif tokens > cost:\n            tokens -= cost\n            out.append(['allow', 0])\n        else:\n            out.append(['deny', math.ceil((cost - tokens) * 1000 / rate)])\n    return [out, str(tokens)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [100, 1], [1000, 2], [1401, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 400],\n     ['allow', 0],\n     ['deny', 99]],\n    '401/500']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10001, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 333], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3100, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3710, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3001, 3], [3001, 5]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [2334, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '1/500']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [901, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '703/1000']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[1025, 1],\n                 [1038, 3],\n                 [1399, 1],\n                 [1944, 3],\n                 [2745, 1],\n                 [2753, 1],\n                 [3169, 1],\n                 [4025, 1],\n                 [4086, 3],\n                 [4305, 3]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['deny', 126],\n     ['deny', 581],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 439],\n     ['deny', 220]],\n    '64/25']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [200, 1], [1000, 2], [1402, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 300],\n     ['allow', 0],\n     ['deny', 98]],\n    '201/250']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10002, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 332], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3200, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3720, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3002, 3], [3002, 6]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [2668, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '251/250']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [902, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '353/500']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[679, 3],\n                 [889, 1],\n                 [1479, 1],\n                 [1523, 1],\n                 [1681, 1],\n                 [2074, 3],\n                 [2401, 2],\n                 [2669, 3],\n                 [4187, 3],\n                 [4538, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 156],\n     ['allow', 0],\n     ['deny', 1105],\n     ['deny', 278],\n     ['deny', 510],\n     ['allow', 0],\n     ['allow', 0]],\n    '351/500']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [300, 1], [1000, 2], [1403, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 200],\n     ['allow', 0],\n     ['deny', 97]],\n    '403/500']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10003, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 331], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3300, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3730, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3003, 3], [3003, 7]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3002, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '1003/500']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [903, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '709/1000']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[476, 2],\n                 [1005, 3],\n                 [1092, 1],\n                 [1140, 2],\n                 [2416, 2],\n                 [2727, 2],\n                 [3540, 3],\n                 [3809, 1],\n                 [3822, 1],\n                 [4130, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['deny', 384],\n     ['deny', 836],\n     ['allow', 0],\n     ['deny', 249],\n     ['allow', 0],\n     ['deny', 167],\n     ['deny', 154],\n     ['allow', 0]],\n    '77/250']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [400, 1], [1000, 2], [1404, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 100],\n     ['allow', 0],\n     ['deny', 96]],\n    '101/125']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10004, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 330], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3400, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3740, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3004, 3], [3004, 8]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3336, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '376/125']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [904, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '89/125']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[295, 3],\n                 [481, 2],\n                 [603, 2],\n                 [1079, 3],\n                 [1690, 3],\n                 [1700, 3],\n                 [2433, 3],\n                 [3280, 3],\n                 [4573, 3],\n                 [4680, 3]]},\n   [[['allow', 0],\n     ['deny', 314],\n     ['deny', 192],\n     ['deny', 216],\n     ['allow', 0],\n     ['deny', 1095],\n     ['deny', 362],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 1115]],\n    '77/100']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [500, 1], [1000, 2], [1405, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 500],\n     ['allow', 0]],\n    '81/100']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10005, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 329], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3500, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3750, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3005, 3], [3005, 9]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3670, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '401/100']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [905, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '143/200']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[1144, 3],\n                 [1657, 3],\n                 [1896, 3],\n                 [2302, 2],\n                 [2570, 2],\n                 [3012, 1],\n                 [3025, 1],\n                 [3251, 1],\n                 [4294, 1],\n                 [4860, 2]]},\n   [[['allow', 0],\n     ['deny', 487],\n     ['deny', 248],\n     ['allow', 0],\n     ['deny', 74],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0]],\n    '54/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":"2612351e5227e74d969039fe7a26772663589e8216880ec6294649255dde1d2c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(x):\n    C = x['capacity']\n    rate = x['rate']\n    tokens = Fraction(C)\n    last = 0\n    out = []\n    for t, cost in x['requests']:\n        elapsed = max(0, t - last)\n        tokens = min(Fraction(C), tokens + Fraction(elapsed * rate, 1000))\n        last = max(last, t)\n        if cost > C:\n            out.append(['never', 0])\n        elif tokens >= cost:\n            tokens -= cost\n            out.append(['allow', 0])\n        else:\n            out.append(['deny', math.ceil((cost - tokens) * 1000 / rate)])\n    return [out, str(tokens)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [100, 1], [1000, 2], [1401, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 400],\n     ['allow', 0],\n     ['deny', 99]],\n    '401/500']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10001, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 333], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3100, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3710, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3001, 3], [3001, 5]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [2334, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '1/500']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [901, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '703/1000']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[1025, 1],\n                 [1038, 3],\n                 [1399, 1],\n                 [1944, 3],\n                 [2745, 1],\n                 [2753, 1],\n                 [3169, 1],\n                 [4025, 1],\n                 [4086, 3],\n                 [4305, 3]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['deny', 126],\n     ['deny', 581],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 439],\n     ['deny', 220]],\n    '64/25']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [200, 1], [1000, 2], [1402, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 300],\n     ['allow', 0],\n     ['deny', 98]],\n    '201/250']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10002, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 332], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3200, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3720, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3002, 3], [3002, 6]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [2668, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '251/250']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [902, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '353/500']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[679, 3],\n                 [889, 1],\n                 [1479, 1],\n                 [1523, 1],\n                 [1681, 1],\n                 [2074, 3],\n                 [2401, 2],\n                 [2669, 3],\n                 [4187, 3],\n                 [4538, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 156],\n     ['allow', 0],\n     ['deny', 1105],\n     ['deny', 278],\n     ['deny', 510],\n     ['allow', 0],\n     ['allow', 0]],\n    '351/500']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [300, 1], [1000, 2], [1403, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 200],\n     ['allow', 0],\n     ['deny', 97]],\n    '403/500']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10003, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 331], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3300, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3730, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3003, 3], [3003, 7]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3002, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '1003/500']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [903, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '709/1000']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[476, 2],\n                 [1005, 3],\n                 [1092, 1],\n                 [1140, 2],\n                 [2416, 2],\n                 [2727, 2],\n                 [3540, 3],\n                 [3809, 1],\n                 [3822, 1],\n                 [4130, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['deny', 384],\n     ['deny', 836],\n     ['allow', 0],\n     ['deny', 249],\n     ['allow', 0],\n     ['deny', 167],\n     ['deny', 154],\n     ['allow', 0]],\n    '77/250']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [400, 1], [1000, 2], [1404, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 100],\n     ['allow', 0],\n     ['deny', 96]],\n    '101/125']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10004, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 330], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3400, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3740, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3004, 3], [3004, 8]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3336, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '376/125']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [904, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '89/125']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[295, 3],\n                 [481, 2],\n                 [603, 2],\n                 [1079, 3],\n                 [1690, 3],\n                 [1700, 3],\n                 [2433, 3],\n                 [3280, 3],\n                 [4573, 3],\n                 [4680, 3]]},\n   [[['allow', 0],\n     ['deny', 314],\n     ['deny', 192],\n     ['deny', 216],\n     ['allow', 0],\n     ['deny', 1095],\n     ['deny', 362],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 1115]],\n    '77/100']]],\n [['burst then refill',\n   {'capacity': 5,\n    'rate': 2,\n    'requests': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [500, 1], [1000, 2], [1405, 1]]},\n   [[['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['deny', 500],\n     ['allow', 0]],\n    '81/100']],\n  ['idle overflow capped',\n   {'capacity': 4, 'rate': 3, 'requests': [[0, 4], [10000, 4], [10005, 1], [10200, 1]]},\n   [[['allow', 0], ['allow', 0], ['deny', 329], ['deny', 134]], '3/5']],\n  ['clock regression',\n   {'capacity': 6,\n    'rate': 1,\n    'requests': [[0, 6], [5000, 1], [3500, 1], [5500, 1], [6000, 1], [6400, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '7/5']],\n  ['small clock step back',\n   {'capacity': 6, 'rate': 1, 'requests': [[0, 6], [4000, 1], [3750, 1], [4000, 1], [4300, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '3/10']],\n  ['oversize cost',\n   {'capacity': 3, 'rate': 1, 'requests': [[0, 4], [0, 3], [3005, 3], [3005, 9]]},\n   [[['never', 0], ['allow', 0], ['allow', 0], ['never', 0]], '0']],\n  ['exact boundary after refill',\n   {'capacity': 10, 'rate': 3, 'requests': [[0, 10], [1000, 3], [2000, 3], [3670, 1]]},\n   [[['allow', 0], ['allow', 0], ['allow', 0], ['allow', 0]], '401/100']],\n  ['fractional shortfall',\n   {'capacity': 5, 'rate': 3, 'requests': [[0, 5], [500, 2], [700, 1], [905, 1]]},\n   [[['allow', 0], ['deny', 167], ['allow', 0], ['allow', 0]], '143/200']],\n  ['random stream',\n   {'capacity': 4,\n    'rate': 2,\n    'requests': [[1144, 3],\n                 [1657, 3],\n                 [1896, 3],\n                 [2302, 2],\n                 [2570, 2],\n                 [3012, 1],\n                 [3025, 1],\n                 [3251, 1],\n                 [4294, 1],\n                 [4860, 2]]},\n   [[['allow', 0],\n     ['deny', 487],\n     ['deny', 248],\n     ['allow', 0],\n     ['deny', 74],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0],\n     ['allow', 0]],\n    '54/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-token-bucket-exact-admit-boundary","generated_at":"2026-09-29T14:48:46.850069+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"API gateways and client SDKs meter requests with lazily refilled token buckets; the refill, clock and boundary rules decide who is throttled and what wait is advertised.","repair":"Admit when tokens >= cost.","root_cause":"Admission requires strictly more tokens than the cost.","sha256":"43c109021afb9507e93dfb945f4fc294ecc4a17bcf6f093f8a3e497d8a932a6f","title":"Token bucket with lazy exact refill: exact balance is denied · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":97.395,"exit_code":1,"observations":[{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["deny",400],["allow",0],["allow",0]],"-99/500"],"check":"burst then refill","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["deny",400],["allow",0],["deny",99]],"401/500"],"passed":false},{"actual":[[["allow",0],["allow",0],["deny",333],["allow",0]],"-2/5"],"check":"idle overflow capped","expected":[[["allow",0],["allow",0],["deny",333],["deny",134]],"3/5"],"passed":false},{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"7/5"],"check":"clock regression","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"7/5"],"passed":true},{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"3/10"],"check":"small clock step back","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"3/10"],"passed":true},{"actual":[[["never",0],["allow",0],["allow",0],["never",0]],"0"],"check":"oversize cost","expected":[[["never",0],["allow",0],["allow",0],["never",0]],"0"],"passed":true},{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0]],"1/500"],"check":"exact boundary after refill","expected":[[["allow",0],["allow",0],["allow",0],["allow",0]],"1/500"],"passed":true},{"actual":[[["allow",0],["allow",0],["deny",300],["allow",0]],"-297/1000"],"check":"fractional shortfall","expected":[[["allow",0],["deny",167],["allow",0],["allow",0]],"703/1000"],"passed":false},{"actual":[[["allow",0],["allow",0],["allow",0],["deny",1081],["allow",0],["allow",0],["allow",0],["allow",0],["deny",939],["deny",720]],"39/25"],"check":"random stream","expected":[[["allow",0],["allow",0],["deny",126],["deny",581],["allow",0],["allow",0],["allow",0],["allow",0],["deny",439],["deny",220]],"64/25"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"burst then refill\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 400], [\"allow\", 0], [\"allow\", 0]], \"-99/500\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 400], [\"allow\", 0], [\"deny\", 99]], \"401/500\"], \"passed\": false}, {\"check\": \"idle overflow capped\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 333], [\"allow\", 0]], \"-2/5\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 333], [\"deny\", 134]], \"3/5\"], \"passed\": false}, {\"check\": \"clock regression\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"7/5\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"7/5\"], \"passed\": true}, {\"check\": \"small clock step back\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"3/10\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"3/10\"], \"passed\": true}, {\"check\": \"oversize cost\", \"actual\": [[[\"never\", 0], [\"allow\", 0], [\"allow\", 0], [\"never\", 0]], \"0\"], \"expected\": [[[\"never\", 0], [\"allow\", 0], [\"allow\", 0], [\"never\", 0]], \"0\"], \"passed\": true}, {\"check\": \"exact boundary after refill\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"1/500\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"1/500\"], \"passed\": true}, {\"check\": \"fractional shortfall\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 300], [\"allow\", 0]], \"-297/1000\"], \"expected\": [[[\"allow\", 0], [\"deny\", 167], [\"allow\", 0], [\"allow\", 0]], \"703/1000\"], \"passed\": false}, {\"check\": \"random stream\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 1081], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 939], [\"deny\", 720]], \"39/25\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 126], [\"deny\", 581], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 439], [\"deny\", 220]], \"64/25\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":48.224,"exit_code":1,"observations":[{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["deny",0],["allow",0],["deny",0],["allow",0]],"901/500"],"check":"burst then refill","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["deny",400],["allow",0],["deny",99]],"401/500"],"passed":false},{"actual":[[["deny",0],["deny",0],["allow",0],["allow",0]],"2597/1000"],"check":"idle overflow capped","expected":[[["allow",0],["allow",0],["deny",333],["deny",134]],"3/5"],"passed":false},{"actual":[[["deny",0],["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"12/5"],"check":"clock regression","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"7/5"],"passed":false},{"actual":[[["deny",0],["allow",0],["allow",0],["allow",0],["allow",0]],"23/10"],"check":"small clock step back","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"3/10"],"passed":false},{"actual":[[["never",0],["deny",0],["deny",0],["never",0]],"3"],"check":"oversize cost","expected":[[["never",0],["allow",0],["allow",0],["never",0]],"0"],"passed":false},{"actual":[[["deny",0],["allow",0],["allow",0],["allow",0]],"3501/500"],"check":"exact boundary after refill","expected":[[["allow",0],["allow",0],["allow",0],["allow",0]],"1/500"],"passed":false},{"actual":[[["deny",0],["allow",0],["allow",0],["allow",0]],"2203/1000"],"check":"fractional shortfall","expected":[[["allow",0],["deny",167],["allow",0],["allow",0]],"703/1000"],"passed":false},{"actual":[[["allow",0],["allow",0],["deny",126],["deny",581],["allow",0],["allow",0],["allow",0],["allow",0],["deny",439],["deny",220]],"64/25"],"check":"random stream","expected":[[["allow",0],["allow",0],["deny",126],["deny",581],["allow",0],["allow",0],["allow",0],["allow",0],["deny",439],["deny",220]],"64/25"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"burst then refill\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 0], [\"allow\", 0], [\"deny\", 0], [\"allow\", 0]], \"901/500\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 400], [\"allow\", 0], [\"deny\", 99]], \"401/500\"], \"passed\": false}, {\"check\": \"idle overflow capped\", \"actual\": [[[\"deny\", 0], [\"deny\", 0], [\"allow\", 0], [\"allow\", 0]], \"2597/1000\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 333], [\"deny\", 134]], \"3/5\"], \"passed\": false}, {\"check\": \"clock regression\", \"actual\": [[[\"deny\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"12/5\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"7/5\"], \"passed\": false}, {\"check\": \"small clock step back\", \"actual\": [[[\"deny\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"23/10\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"3/10\"], \"passed\": false}, {\"check\": \"oversize cost\", \"actual\": [[[\"never\", 0], [\"deny\", 0], [\"deny\", 0], [\"never\", 0]], \"3\"], \"expected\": [[[\"never\", 0], [\"allow\", 0], [\"allow\", 0], [\"never\", 0]], \"0\"], \"passed\": false}, {\"check\": \"exact boundary after refill\", \"actual\": [[[\"deny\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"3501/500\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"1/500\"], \"passed\": false}, {\"check\": \"fractional shortfall\", \"actual\": [[[\"deny\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"2203/1000\"], \"expected\": [[[\"allow\", 0], [\"deny\", 167], [\"allow\", 0], [\"allow\", 0]], \"703/1000\"], \"passed\": false}, {\"check\": \"random stream\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 126], [\"deny\", 581], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 439], [\"deny\", 220]], \"64/25\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 126], [\"deny\", 581], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 439], [\"deny\", 220]], \"64/25\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.589,"exit_code":0,"observations":[{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["deny",400],["allow",0],["deny",99]],"401/500"],"check":"burst then refill","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["deny",400],["allow",0],["deny",99]],"401/500"],"passed":true},{"actual":[[["allow",0],["allow",0],["deny",333],["deny",134]],"3/5"],"check":"idle overflow capped","expected":[[["allow",0],["allow",0],["deny",333],["deny",134]],"3/5"],"passed":true},{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"7/5"],"check":"clock regression","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"7/5"],"passed":true},{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"3/10"],"check":"small clock step back","expected":[[["allow",0],["allow",0],["allow",0],["allow",0],["allow",0]],"3/10"],"passed":true},{"actual":[[["never",0],["allow",0],["allow",0],["never",0]],"0"],"check":"oversize cost","expected":[[["never",0],["allow",0],["allow",0],["never",0]],"0"],"passed":true},{"actual":[[["allow",0],["allow",0],["allow",0],["allow",0]],"1/500"],"check":"exact boundary after refill","expected":[[["allow",0],["allow",0],["allow",0],["allow",0]],"1/500"],"passed":true},{"actual":[[["allow",0],["deny",167],["allow",0],["allow",0]],"703/1000"],"check":"fractional shortfall","expected":[[["allow",0],["deny",167],["allow",0],["allow",0]],"703/1000"],"passed":true},{"actual":[[["allow",0],["allow",0],["deny",126],["deny",581],["allow",0],["allow",0],["allow",0],["allow",0],["deny",439],["deny",220]],"64/25"],"check":"random stream","expected":[[["allow",0],["allow",0],["deny",126],["deny",581],["allow",0],["allow",0],["allow",0],["allow",0],["deny",439],["deny",220]],"64/25"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"burst then refill\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 400], [\"allow\", 0], [\"deny\", 99]], \"401/500\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 400], [\"allow\", 0], [\"deny\", 99]], \"401/500\"], \"passed\": true}, {\"check\": \"idle overflow capped\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 333], [\"deny\", 134]], \"3/5\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 333], [\"deny\", 134]], \"3/5\"], \"passed\": true}, {\"check\": \"clock regression\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"7/5\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"7/5\"], \"passed\": true}, {\"check\": \"small clock step back\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"3/10\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"3/10\"], \"passed\": true}, {\"check\": \"oversize cost\", \"actual\": [[[\"never\", 0], [\"allow\", 0], [\"allow\", 0], [\"never\", 0]], \"0\"], \"expected\": [[[\"never\", 0], [\"allow\", 0], [\"allow\", 0], [\"never\", 0]], \"0\"], \"passed\": true}, {\"check\": \"exact boundary after refill\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"1/500\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0]], \"1/500\"], \"passed\": true}, {\"check\": \"fractional shortfall\", \"actual\": [[[\"allow\", 0], [\"deny\", 167], [\"allow\", 0], [\"allow\", 0]], \"703/1000\"], \"expected\": [[[\"allow\", 0], [\"deny\", 167], [\"allow\", 0], [\"allow\", 0]], \"703/1000\"], \"passed\": true}, {\"check\": \"random stream\", \"actual\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 126], [\"deny\", 581], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 439], [\"deny\", 220]], \"64/25\"], \"expected\": [[[\"allow\", 0], [\"allow\", 0], [\"deny\", 126], [\"deny\", 581], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"allow\", 0], [\"deny\", 439], [\"deny\", 220]], \"64/25\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}