{"abstract":"A 1 that is exactly W ticks old is still counted.","category":"Probabilistic sketches","checks":7,"contract":"Input {W, bits, queries}; timestamps start at 1. Buckets are [size, timestamp of most recent 1], newest first. Before processing time t, buckets with timestamp <= t - W expire. A 1 bit adds [1, t]; while more than two buckets share a size, the two oldest of that size merge into one of double size keeping the more recent timestamp, cascading upward. At a query time the estimate is the total size minus floor(oldest size / 2). Return [[t, estimate] per query, final buckets].","evaluation_group":"w2-probabilistic_sketches-dgim-window-count","failed_approach":"Expiring only when a 1 arrives lets stale buckets survive runs of zeros.","family":"w2-probabilistic_sketches-dgim-window-count-expiry-boundary","id":"FA-73311","implementations":{"attempt":{"sha256":"916ec55bd0652eb4e32afef279ce7e61520085a8f9244ea1d73cdac39c8b5ecc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    W = x['W']\n    buckets = []\n    out = []\n    for t, bit in enumerate(x['bits'], 1):\n        while bit and buckets and buckets[-1][1] <= t - W:\n            buckets.pop()\n        if bit:\n            buckets.insert(0, [1, t])\n            size = 1\n            while True:\n                idx = [i for i, bk in enumerate(buckets) if bk[0] == size]\n                if len(idx) <= 2:\n                    break\n                a, z = idx[-2], idx[-1]\n                buckets[a] = [size * 2, buckets[a][1]]\n                del buckets[z]\n                size *= 2\n        if t in x['queries']:\n            if buckets:\n                total = sum(bk[0] for bk in buckets)\n                out.append([t, total - buckets[-1][0] // 2])\n            else:\n                out.append([t, 0])\n    return [out, buckets]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['stream 0 W=10',\n   {'W': 10,\n    'bits': [1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 15]},\n   [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 10]},\n   [[[4, 3], [8, 1], [10, 0]], []]],\n  ['empty window', {'W': 3, 'bits': [0, 0, 0, 0, 0], 'queries': [2, 4]}, [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 3], [27, 4], [30, 6]], [[1, 30], [1, 29], [2, 28], [4, 22]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 2], [22, 4], [25, 5]], [[1, 25], [1, 24], [2, 23], [2, 18]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 12], [40, 8]], [[1, 40], [1, 38], [2, 33], [2, 30], [4, 27]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0],\n    'queries': [10, 17, 20]},\n   [[[10, 3], [17, 2], [20, 4]], [[1, 19], [2, 18], [2, 16]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 16]},\n   [[[7, 5], [16, 12]], [[1, 16], [1, 15], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 11]},\n   [[[4, 3], [8, 1], [11, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 6], [30, 5]], [[1, 29], [1, 28], [2, 27], [2, 24]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0],\n    'queries': [12, 22, 25]},\n   [[[12, 7], [22, 6], [25, 4]], [[1, 24], [2, 22], [2, 20]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 13], [37, 12], [40, 8]], [[1, 40], [1, 39], [2, 37], [2, 33], [4, 31]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 2], [17, 2], [20, 3]], [[1, 20], [1, 19], [2, 18]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 17]},\n   [[[7, 5], [17, 13]], [[1, 17], [2, 16], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 12]},\n   [[[4, 3], [8, 1], [12, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             0,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 7], [30, 5]], [[1, 30], [1, 27], [2, 24], [2, 21]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 4], [22, 7], [25, 5]], [[1, 25], [1, 22], [2, 21], [2, 19]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 9], [40, 11]], [[1, 39], [2, 38], [2, 36], [4, 31], [4, 25]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 4], [17, 6], [20, 5]], [[1, 20], [1, 19], [2, 17], [2, 15]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 18]},\n   [[[7, 5], [18, 14]], [[1, 18], [1, 17], [2, 16], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 13]},\n   [[[4, 3], [8, 1], [13, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 7], [30, 8]], [[1, 29], [1, 27], [2, 26], [2, 23], [4, 21]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0],\n    'queries': [12, 22, 25]},\n   [[[12, 2], [22, 7], [25, 5]], [[1, 24], [1, 22], [2, 20], [2, 18]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 10], [40, 8]], [[1, 40], [1, 38], [2, 37], [2, 35], [4, 31]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 3], [17, 3], [20, 2]], [[1, 20], [2, 19]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 19]},\n   [[[7, 5], [19, 15]], [[1, 19], [2, 18], [4, 16], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 14]},\n   [[[4, 3], [8, 1], [14, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]]]\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":"2efac189ebb92fa278c2b7f0c4fc7502c60e7a6778fb2434281f383f93a34528","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    W = x['W']\n    buckets = []\n    out = []\n    for t, bit in enumerate(x['bits'], 1):\n        while buckets and buckets[-1][1] < t - W:\n            buckets.pop()\n        if bit:\n            buckets.insert(0, [1, t])\n            size = 1\n            while True:\n                idx = [i for i, bk in enumerate(buckets) if bk[0] == size]\n                if len(idx) <= 2:\n                    break\n                a, z = idx[-2], idx[-1]\n                buckets[a] = [size * 2, buckets[a][1]]\n                del buckets[z]\n                size *= 2\n        if t in x['queries']:\n            if buckets:\n                total = sum(bk[0] for bk in buckets)\n                out.append([t, total - buckets[-1][0] // 2])\n            else:\n                out.append([t, 0])\n    return [out, buckets]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['stream 0 W=10',\n   {'W': 10,\n    'bits': [1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 15]},\n   [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 10]},\n   [[[4, 3], [8, 1], [10, 0]], []]],\n  ['empty window', {'W': 3, 'bits': [0, 0, 0, 0, 0], 'queries': [2, 4]}, [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 3], [27, 4], [30, 6]], [[1, 30], [1, 29], [2, 28], [4, 22]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 2], [22, 4], [25, 5]], [[1, 25], [1, 24], [2, 23], [2, 18]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 12], [40, 8]], [[1, 40], [1, 38], [2, 33], [2, 30], [4, 27]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0],\n    'queries': [10, 17, 20]},\n   [[[10, 3], [17, 2], [20, 4]], [[1, 19], [2, 18], [2, 16]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 16]},\n   [[[7, 5], [16, 12]], [[1, 16], [1, 15], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 11]},\n   [[[4, 3], [8, 1], [11, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 6], [30, 5]], [[1, 29], [1, 28], [2, 27], [2, 24]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0],\n    'queries': [12, 22, 25]},\n   [[[12, 7], [22, 6], [25, 4]], [[1, 24], [2, 22], [2, 20]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 13], [37, 12], [40, 8]], [[1, 40], [1, 39], [2, 37], [2, 33], [4, 31]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 2], [17, 2], [20, 3]], [[1, 20], [1, 19], [2, 18]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 17]},\n   [[[7, 5], [17, 13]], [[1, 17], [2, 16], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 12]},\n   [[[4, 3], [8, 1], [12, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             0,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 7], [30, 5]], [[1, 30], [1, 27], [2, 24], [2, 21]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 4], [22, 7], [25, 5]], [[1, 25], [1, 22], [2, 21], [2, 19]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 9], [40, 11]], [[1, 39], [2, 38], [2, 36], [4, 31], [4, 25]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 4], [17, 6], [20, 5]], [[1, 20], [1, 19], [2, 17], [2, 15]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 18]},\n   [[[7, 5], [18, 14]], [[1, 18], [1, 17], [2, 16], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 13]},\n   [[[4, 3], [8, 1], [13, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 7], [30, 8]], [[1, 29], [1, 27], [2, 26], [2, 23], [4, 21]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0],\n    'queries': [12, 22, 25]},\n   [[[12, 2], [22, 7], [25, 5]], [[1, 24], [1, 22], [2, 20], [2, 18]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 10], [40, 8]], [[1, 40], [1, 38], [2, 37], [2, 35], [4, 31]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 3], [17, 3], [20, 2]], [[1, 20], [2, 19]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 19]},\n   [[[7, 5], [19, 15]], [[1, 19], [2, 18], [4, 16], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 14]},\n   [[[4, 3], [8, 1], [14, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]]]\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":"cbb4b49bb49a918c01372f5d8bb755fb5f2cf38a08771c3a1af1b60e3eb8c7e4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    W = x['W']\n    buckets = []\n    out = []\n    for t, bit in enumerate(x['bits'], 1):\n        while buckets and buckets[-1][1] <= t - W:\n            buckets.pop()\n        if bit:\n            buckets.insert(0, [1, t])\n            size = 1\n            while True:\n                idx = [i for i, bk in enumerate(buckets) if bk[0] == size]\n                if len(idx) <= 2:\n                    break\n                a, z = idx[-2], idx[-1]\n                buckets[a] = [size * 2, buckets[a][1]]\n                del buckets[z]\n                size *= 2\n        if t in x['queries']:\n            if buckets:\n                total = sum(bk[0] for bk in buckets)\n                out.append([t, total - buckets[-1][0] // 2])\n            else:\n                out.append([t, 0])\n    return [out, buckets]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['stream 0 W=10',\n   {'W': 10,\n    'bits': [1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 15]},\n   [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 10]},\n   [[[4, 3], [8, 1], [10, 0]], []]],\n  ['empty window', {'W': 3, 'bits': [0, 0, 0, 0, 0], 'queries': [2, 4]}, [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 3], [27, 4], [30, 6]], [[1, 30], [1, 29], [2, 28], [4, 22]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 2], [22, 4], [25, 5]], [[1, 25], [1, 24], [2, 23], [2, 18]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 12], [40, 8]], [[1, 40], [1, 38], [2, 33], [2, 30], [4, 27]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0],\n    'queries': [10, 17, 20]},\n   [[[10, 3], [17, 2], [20, 4]], [[1, 19], [2, 18], [2, 16]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 16]},\n   [[[7, 5], [16, 12]], [[1, 16], [1, 15], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 11]},\n   [[[4, 3], [8, 1], [11, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 6], [30, 5]], [[1, 29], [1, 28], [2, 27], [2, 24]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0],\n    'queries': [12, 22, 25]},\n   [[[12, 7], [22, 6], [25, 4]], [[1, 24], [2, 22], [2, 20]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             1,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 13], [37, 12], [40, 8]], [[1, 40], [1, 39], [2, 37], [2, 33], [4, 31]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 2], [17, 2], [20, 3]], [[1, 20], [1, 19], [2, 18]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 17]},\n   [[[7, 5], [17, 13]], [[1, 17], [2, 16], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 12]},\n   [[[4, 3], [8, 1], [12, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             0,\n             1,\n             0,\n             0,\n             1],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 7], [30, 5]], [[1, 30], [1, 27], [2, 24], [2, 21]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1],\n    'queries': [12, 22, 25]},\n   [[[12, 4], [22, 7], [25, 5]], [[1, 25], [1, 22], [2, 21], [2, 19]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 9], [40, 11]], [[1, 39], [2, 38], [2, 36], [4, 31], [4, 25]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 4], [17, 6], [20, 5]], [[1, 20], [1, 19], [2, 17], [2, 15]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 18]},\n   [[[7, 5], [18, 14]], [[1, 18], [1, 17], [2, 16], [2, 14], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 13]},\n   [[[4, 3], [8, 1], [13, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]],\n [['stream 0 W=10',\n   {'W': 10,\n    'bits': [0,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             0],\n    'queries': [15, 27, 30]},\n   [[[15, 5], [27, 7], [30, 8]], [[1, 29], [1, 27], [2, 26], [2, 23], [4, 21]]]],\n  ['stream 1 W=8',\n   {'W': 8,\n    'bits': [0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0],\n    'queries': [12, 22, 25]},\n   [[[12, 2], [22, 7], [25, 5]], [[1, 24], [1, 22], [2, 20], [2, 18]]]],\n  ['stream 2 W=16',\n   {'W': 16,\n    'bits': [0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             1,\n             1,\n             1,\n             0,\n             1,\n             1,\n             1,\n             0,\n             0,\n             0,\n             1,\n             0,\n             1,\n             0,\n             1,\n             1,\n             1,\n             1,\n             0,\n             1],\n    'queries': [20, 37, 40]},\n   [[[20, 11], [37, 10], [40, 8]], [[1, 40], [1, 38], [2, 37], [2, 35], [4, 31]]]],\n  ['stream 3 W=6',\n   {'W': 6,\n    'bits': [1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1],\n    'queries': [10, 17, 20]},\n   [[[10, 3], [17, 3], [20, 2]], [[1, 20], [2, 19]]]],\n  ['all ones',\n   {'W': 12, 'bits': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], 'queries': [7, 19]},\n   [[[7, 5], [19, 15]], [[1, 19], [2, 18], [4, 16], [4, 12], [8, 8]]]],\n  ['trailing zeros expire',\n   {'W': 5, 'bits': [1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [4, 8, 14]},\n   [[[4, 3], [8, 1], [14, 0]], []]],\n  ['empty window',\n   {'W': 3, 'bits': [0, 0, 0, 0, 0, 0, 0, 0, 0], 'queries': [2, 4]},\n   [[[2, 0], [4, 0]], []]]]]\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-probabilistic_sketches-dgim-window-count-expiry-boundary","generated_at":"2026-09-29T14:48:46.350509+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Exponential-histogram counters approximate \"events in the last W ticks\" in logarithmic memory for streaming monitors; merge and expiry rules determine the error bound.","repair":"Expire buckets whose timestamp is at most t - W.","root_cause":"Expiry uses a strict comparison, keeping buckets whose timestamp equals t - W.","sha256":"1d11a05b644eb86b2bb53be4e39e029714686808f59764761f727f53a6067c01","title":"DGIM sliding-window bit counting: bucket at the window edge not expired · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.25,"exit_code":1,"observations":[{"actual":[[[15,6],[27,9],[30,7]],[[1,30],[2,29],[2,26],[4,24]]],"check":"stream 0 W=10","expected":[[[15,6],[27,9],[30,7]],[[1,30],[2,29],[2,26],[4,24]]],"passed":true},{"actual":[[[12,3],[22,6],[25,4]],[[1,25],[2,22],[2,20]]],"check":"stream 1 W=8","expected":[[[12,3],[22,6],[25,4]],[[1,25],[2,22],[2,20]]],"passed":true},{"actual":[[[20,4],[37,11],[40,10]],[[1,40],[1,39],[2,38],[4,33],[4,27]]],"check":"stream 2 W=16","expected":[[[20,4],[37,11],[40,10]],[[1,40],[1,39],[2,38],[4,33],[4,27]]],"passed":true},{"actual":[[[10,2],[17,2],[20,4]],[[1,20],[2,18],[2,15]]],"check":"stream 3 W=6","expected":[[[10,2],[17,2],[20,4]],[[1,20],[2,18],[2,15]]],"passed":true},{"actual":[[[7,5],[15,11]],[[1,15],[2,14],[4,12],[8,8]]],"check":"all ones","expected":[[[7,5],[15,11]],[[1,15],[2,14],[4,12],[8,8]]],"passed":true},{"actual":[[[4,3],[8,3],[10,3]],[[1,4],[1,3],[2,2]]],"check":"trailing zeros expire","expected":[[[4,3],[8,1],[10,0]],[]],"passed":false},{"actual":[[[2,0],[4,0]],[]],"check":"empty window","expected":[[[2,0],[4,0]],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stream 0 W=10\", \"actual\": [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]], \"expected\": [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]], \"passed\": true}, {\"check\": \"stream 1 W=8\", \"actual\": [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]], \"expected\": [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]], \"passed\": true}, {\"check\": \"stream 2 W=16\", \"actual\": [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]], \"expected\": [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]], \"passed\": true}, {\"check\": \"stream 3 W=6\", \"actual\": [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]], \"expected\": [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]], \"passed\": true}, {\"check\": \"all ones\", \"actual\": [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]], \"expected\": [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]], \"passed\": true}, {\"check\": \"trailing zeros expire\", \"actual\": [[[4, 3], [8, 3], [10, 3]], [[1, 4], [1, 3], [2, 2]]], \"expected\": [[[4, 3], [8, 1], [10, 0]], []], \"passed\": false}, {\"check\": \"empty window\", \"actual\": [[[2, 0], [4, 0]], []], \"expected\": [[[2, 0], [4, 0]], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.541,"exit_code":1,"observations":[{"actual":[[[15,6],[27,9],[30,7]],[[1,30],[2,29],[2,26],[4,24]]],"check":"stream 0 W=10","expected":[[[15,6],[27,9],[30,7]],[[1,30],[2,29],[2,26],[4,24]]],"passed":true},{"actual":[[[12,3],[22,6],[25,7]],[[1,25],[2,22],[2,20],[4,17]]],"check":"stream 1 W=8","expected":[[[12,3],[22,6],[25,4]],[[1,25],[2,22],[2,20]]],"passed":false},{"actual":[[[20,5],[37,11],[40,10]],[[1,40],[1,39],[2,38],[4,33],[4,27]]],"check":"stream 2 W=16","expected":[[[20,4],[37,11],[40,10]],[[1,40],[1,39],[2,38],[4,33],[4,27]]],"passed":false},{"actual":[[[10,2],[17,3],[20,3]],[[1,20],[1,18],[2,17]]],"check":"stream 3 W=6","expected":[[[10,2],[17,2],[20,4]],[[1,20],[2,18],[2,15]]],"passed":false},{"actual":[[[7,5],[15,11]],[[1,15],[2,14],[4,12],[8,8]]],"check":"all ones","expected":[[[7,5],[15,11]],[[1,15],[2,14],[4,12],[8,8]]],"passed":true},{"actual":[[[4,3],[8,2],[10,0]],[]],"check":"trailing zeros expire","expected":[[[4,3],[8,1],[10,0]],[]],"passed":false},{"actual":[[[2,0],[4,0]],[]],"check":"empty window","expected":[[[2,0],[4,0]],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stream 0 W=10\", \"actual\": [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]], \"expected\": [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]], \"passed\": true}, {\"check\": \"stream 1 W=8\", \"actual\": [[[12, 3], [22, 6], [25, 7]], [[1, 25], [2, 22], [2, 20], [4, 17]]], \"expected\": [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]], \"passed\": false}, {\"check\": \"stream 2 W=16\", \"actual\": [[[20, 5], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]], \"expected\": [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]], \"passed\": false}, {\"check\": \"stream 3 W=6\", \"actual\": [[[10, 2], [17, 3], [20, 3]], [[1, 20], [1, 18], [2, 17]]], \"expected\": [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]], \"passed\": false}, {\"check\": \"all ones\", \"actual\": [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]], \"expected\": [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]], \"passed\": true}, {\"check\": \"trailing zeros expire\", \"actual\": [[[4, 3], [8, 2], [10, 0]], []], \"expected\": [[[4, 3], [8, 1], [10, 0]], []], \"passed\": false}, {\"check\": \"empty window\", \"actual\": [[[2, 0], [4, 0]], []], \"expected\": [[[2, 0], [4, 0]], []], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.092,"exit_code":0,"observations":[{"actual":[[[15,6],[27,9],[30,7]],[[1,30],[2,29],[2,26],[4,24]]],"check":"stream 0 W=10","expected":[[[15,6],[27,9],[30,7]],[[1,30],[2,29],[2,26],[4,24]]],"passed":true},{"actual":[[[12,3],[22,6],[25,4]],[[1,25],[2,22],[2,20]]],"check":"stream 1 W=8","expected":[[[12,3],[22,6],[25,4]],[[1,25],[2,22],[2,20]]],"passed":true},{"actual":[[[20,4],[37,11],[40,10]],[[1,40],[1,39],[2,38],[4,33],[4,27]]],"check":"stream 2 W=16","expected":[[[20,4],[37,11],[40,10]],[[1,40],[1,39],[2,38],[4,33],[4,27]]],"passed":true},{"actual":[[[10,2],[17,2],[20,4]],[[1,20],[2,18],[2,15]]],"check":"stream 3 W=6","expected":[[[10,2],[17,2],[20,4]],[[1,20],[2,18],[2,15]]],"passed":true},{"actual":[[[7,5],[15,11]],[[1,15],[2,14],[4,12],[8,8]]],"check":"all ones","expected":[[[7,5],[15,11]],[[1,15],[2,14],[4,12],[8,8]]],"passed":true},{"actual":[[[4,3],[8,1],[10,0]],[]],"check":"trailing zeros expire","expected":[[[4,3],[8,1],[10,0]],[]],"passed":true},{"actual":[[[2,0],[4,0]],[]],"check":"empty window","expected":[[[2,0],[4,0]],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"stream 0 W=10\", \"actual\": [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]], \"expected\": [[[15, 6], [27, 9], [30, 7]], [[1, 30], [2, 29], [2, 26], [4, 24]]], \"passed\": true}, {\"check\": \"stream 1 W=8\", \"actual\": [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]], \"expected\": [[[12, 3], [22, 6], [25, 4]], [[1, 25], [2, 22], [2, 20]]], \"passed\": true}, {\"check\": \"stream 2 W=16\", \"actual\": [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]], \"expected\": [[[20, 4], [37, 11], [40, 10]], [[1, 40], [1, 39], [2, 38], [4, 33], [4, 27]]], \"passed\": true}, {\"check\": \"stream 3 W=6\", \"actual\": [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]], \"expected\": [[[10, 2], [17, 2], [20, 4]], [[1, 20], [2, 18], [2, 15]]], \"passed\": true}, {\"check\": \"all ones\", \"actual\": [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]], \"expected\": [[[7, 5], [15, 11]], [[1, 15], [2, 14], [4, 12], [8, 8]]], \"passed\": true}, {\"check\": \"trailing zeros expire\", \"actual\": [[[4, 3], [8, 1], [10, 0]], []], \"expected\": [[[4, 3], [8, 1], [10, 0]], []], \"passed\": true}, {\"check\": \"empty window\", \"actual\": [[[2, 0], [4, 0]], []], \"expected\": [[[2, 0], [4, 0]], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}