{"abstract":"The filter sets bits at positions that another writer never probes, and base-hash bits are missing.","category":"Probabilistic sketches","checks":7,"contract":"Input {m, k, add, query}. Each string is hashed with 32-bit FNV-1a over its UTF-8 bytes using seed 0 (h1) and seed 0x5bd1e995 (h2); h2 is forced odd by OR-ing 1. Probe i for i in 0..k-1 is ((h1 + i*h2) mod 2^32) mod m. Return [sorted set bit indices, membership booleans for query] where membership requires every probe bit.","evaluation_group":"w2-probabilistic_sketches-bloom-double-hashing","failed_approach":"Extending the loop to k+1 restores the probe count but still omits i=0 and adds a probe beyond the contract.","family":"w2-probabilistic_sketches-bloom-double-hashing-probe-range","id":"FA-72841","implementations":{"attempt":{"sha256":"ba8ef63ee95aca8435949a1463c64e590709035d0cb14710849cb39b214b2438","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    m = x['m']\n    k = x['k']\n    def fnv(s, seed):\n        h = (2166136261 ^ seed) & 0xFFFFFFFF\n        for b in s.encode('utf-8'):\n            h = ((h ^ b) * 16777619) & 0xFFFFFFFF\n        return h\n    def probes(s):\n        h1 = fnv(s, 0)\n        h2 = fnv(s, 0x5bd1e995) | 1\n        return [((h1 + i * h2) & 0xFFFFFFFF) % m for i in range(1, k + 1)]\n    bits = [0] * m\n    for s in x['add']:\n        for p in probes(s):\n            bits[p] = 1\n    hits = [all(bits[p] for p in probes(s)) for s in x['query']]\n    return [[i for i in range(m) if bits[i]], hits]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['bloom 0 m=62 k=3',\n   {'add': ['smörgås', 'ember', 'eta', 'jalapeño', 'straße'],\n    'k': 3,\n    'm': 62,\n    'query': ['smörgås', 'ember', 'mu', 'straße', 'beta', 'south']},\n   [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56],\n    [True, True, True, True, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['crème', 'eta', 'øre', 'theta', 'kappa', 'jalapeño'],\n    'k': 4,\n    'm': 64,\n    'query': ['crème', 'eta', 'übung', 'east', 'frost', 'lambda']},\n   [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=39 k=2',\n   {'add': ['straße', 'gamma', 'iota', 'øre'],\n    'k': 2,\n    'm': 39,\n    'query': ['straße', 'gamma', 'eta', 'zeta', 'frost', 'grove']},\n   [[0, 1, 3, 4, 7, 21, 27], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['river', 'jalapeño', 'mu', 'eta', 'übung', 'lambda', 'übung'],\n    'k': 5,\n    'm': 29,\n    'query': ['river', 'jalapeño', 'theta', 'north', 'café', 'naïve']},\n   [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28],\n    [True, True, False, True, False, False]]],\n  ['bloom 4 m=101 k=3',\n   {'add': ['eta', 'gamma', 'naïve', 'straße', 'kappa', 'grove', 'delta', 'café'],\n    'k': 3,\n    'm': 101,\n    'query': ['eta', 'gamma', 'north', 'øre', 'lambda', 'iota']},\n   [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['café', 'stone', 'grove', 'straße'],\n    'k': 2,\n    'm': 16,\n    'query': ['café', 'stone', 'theta', 'naïve', 'gamma', 'ember']},\n   [[0, 3, 8, 9, 10, 15], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 24, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=63 k=3',\n   {'add': ['epsilon', 'south', 'øre', 'mu', 'jalapeño'],\n    'k': 3,\n    'm': 63,\n    'query': ['epsilon', 'south', 'zeta', 'jalapeño', 'east', 'frost']},\n   [[3, 13, 15, 18, 26, 27, 30, 34, 46, 48, 54, 56, 58], [True, True, False, True, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['øre', 'zeta', 'café', 'kappa', 'grove', 'øre'],\n    'k': 4,\n    'm': 64,\n    'query': ['øre', 'zeta', 'naïve', 'smörgås', 'west', 'beta']},\n   [[0, 1, 6, 8, 9, 14, 19, 21, 24, 27, 31, 32, 38, 42, 44, 45, 46, 55, 57, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=41 k=2',\n   {'add': ['west', 'crème', 'jalapeño', 'übung'],\n    'k': 2,\n    'm': 41,\n    'query': ['west', 'crème', 'øre', 'grove', 'frost', 'zeta']},\n   [[3, 15, 21, 23, 26, 27, 40], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['west', 'stone', 'café', 'straße', 'theta', 'crème', 'café'],\n    'k': 5,\n    'm': 29,\n    'query': ['west', 'stone', 'epsilon', 'gamma', 'beta', 'zeta']},\n   [[0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27],\n    [True, True, True, False, False, False]]],\n  ['bloom 4 m=102 k=3',\n   {'add': ['øre', 'smörgås', 'straße', 'crème', 'theta', 'east', 'cloud', 'straße'],\n    'k': 3,\n    'm': 102,\n    'query': ['øre', 'smörgås', 'west', 'epsilon', 'übung', 'grove']},\n   [[2, 7, 8, 16, 30, 31, 36, 39, 42, 49, 53, 60, 62, 63, 64, 75, 84, 89, 94],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['naïve', 'north', 'übung', 'jalapeño'],\n    'k': 2,\n    'm': 16,\n    'query': ['naïve', 'north', 'south', 'gamma', 'theta', 'øre']},\n   [[1, 2, 4, 7, 11], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 25, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=64 k=3',\n   {'add': ['east', 'straße', 'west', 'grove', 'øre'],\n    'k': 3,\n    'm': 64,\n    'query': ['east', 'straße', 'ember', 'eta', 'cloud', 'gamma']},\n   [[3, 6, 19, 24, 25, 31, 38, 46, 53, 54, 57, 60], [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['grove', 'øre', 'west', 'delta', 'north', 'übung'],\n    'k': 4,\n    'm': 64,\n    'query': ['grove', 'øre', 'café', 'straße', 'lambda', 'south']},\n   [[1, 3, 4, 6, 14, 15, 19, 23, 24, 27, 31, 33, 38, 42, 44, 45, 46, 52, 53, 57, 60, 61],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=43 k=2',\n   {'add': ['delta', 'übung', 'gamma', 'café'],\n    'k': 2,\n    'm': 43,\n    'query': ['delta', 'übung', 'epsilon', 'theta', 'smörgås', 'alpha']},\n   [[0, 3, 4, 8, 18, 23, 29, 31], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['beta', 'theta', 'delta', 'east', 'epsilon', 'øre', 'straße'],\n    'k': 5,\n    'm': 29,\n    'query': ['beta', 'theta', 'crème', 'kappa', 'zeta', 'naïve']},\n   [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 28],\n    [True, True, False, True, False, False]]],\n  ['bloom 4 m=103 k=3',\n   {'add': ['ember', 'west', 'smörgås', 'frost', 'south', 'naïve', 'theta', 'jalapeño'],\n    'k': 3,\n    'm': 103,\n    'query': ['ember', 'west', 'stone', 'grove', 'øre', 'cloud']},\n   [[0, 5, 6, 14, 15, 16, 23, 25, 31, 37, 48, 54, 59, 60, 72, 74, 77, 78, 80, 93, 94, 95],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['gamma', 'mu', 'eta', 'øre'],\n    'k': 2,\n    'm': 16,\n    'query': ['gamma', 'mu', 'smörgås', 'ember', 'east', 'øre']},\n   [[3, 6, 7, 8, 10, 11, 14], [True, True, False, False, False, True]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 26, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=65 k=3',\n   {'add': ['alpha', 'ember', 'eta', 'west', 'übung'],\n    'k': 3,\n    'm': 65,\n    'query': ['alpha', 'ember', 'river', 'theta', 'café', 'lambda']},\n   [[0, 6, 7, 9, 14, 15, 16, 26, 28, 37, 47, 49, 56, 64],\n    [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['alpha', 'east', 'epsilon', 'stone', 'grove', 'café'],\n    'k': 4,\n    'm': 64,\n    'query': ['alpha', 'east', 'zeta', 'delta', 'ember', 'west']},\n   [[9, 14, 16, 19, 24, 25, 26, 29, 31, 32, 36, 38, 43, 45, 47, 53, 54, 55, 58, 60],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=45 k=2',\n   {'add': ['gamma', 'north', 'river', 'straße'],\n    'k': 2,\n    'm': 45,\n    'query': ['gamma', 'north', 'lambda', 'mu', 'frost', 'beta']},\n   [[8, 9, 18, 19, 27, 29, 33], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['ember', 'eta', 'smörgås', 'iota', 'café', 'lambda', 'jalapeño'],\n    'k': 5,\n    'm': 29,\n    'query': ['ember', 'eta', 'øre', 'zeta', 'north', 'kappa']},\n   [[0, 3, 5, 7, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 24, 25],\n    [True, True, False, False, False, False]]],\n  ['bloom 4 m=104 k=3',\n   {'add': ['naïve', 'beta', 'straße', 'ember', 'jalapeño', 'theta', 'iota', 'øre'],\n    'k': 3,\n    'm': 104,\n    'query': ['naïve', 'beta', 'zeta', 'smörgås', 'frost', 'delta']},\n   [[0, 8, 9, 11, 16, 28, 30, 31, 34, 37, 47, 49, 52, 53, 57, 67, 78, 82, 87, 90, 93, 98, 99],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['beta', 'øre', 'stone', 'übung'],\n    'k': 2,\n    'm': 16,\n    'query': ['beta', 'øre', 'ember', 'delta', 'zeta', 'iota']},\n   [[1, 3, 4, 6, 7, 10, 15], [True, True, True, False, True, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 27, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=66 k=3',\n   {'add': ['frost', 'smörgås', 'mu', 'grove', 'café'],\n    'k': 3,\n    'm': 66,\n    'query': ['frost', 'smörgås', 'stone', 'delta', 'alpha', 'kappa']},\n   [[0, 6, 14, 29, 33, 36, 37, 41, 45, 46, 51, 55, 58, 61, 62],\n    [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['crème', 'river', 'smörgås', 'lambda', 'kappa', 'straße'],\n    'k': 4,\n    'm': 64,\n    'query': ['crème', 'river', 'zeta', 'mu', 'frost', 'epsilon']},\n   [[1, 3, 6, 8, 11, 16, 17, 18, 24, 25, 27, 30, 32, 37, 39, 42, 46, 60, 61, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=47 k=2',\n   {'add': ['delta', 'south', 'café', 'jalapeño'],\n    'k': 2,\n    'm': 47,\n    'query': ['delta', 'south', 'mu', 'zeta', 'naïve', 'øre']},\n   [[0, 2, 11, 30, 35, 40, 43], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['café', 'cloud', 'straße', 'übung', 'south', 'theta', 'øre'],\n    'k': 5,\n    'm': 29,\n    'query': ['café', 'cloud', 'east', 'zeta', 'øre', 'kappa']},\n   [[1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28],\n    [True, True, False, False, True, False]]],\n  ['bloom 4 m=105 k=3',\n   {'add': ['grove', 'cloud', 'crème', 'iota', 'beta', 'lambda', 'øre', 'übung'],\n    'k': 3,\n    'm': 105,\n    'query': ['grove', 'cloud', 'delta', 'mu', 'zeta', 'café']},\n   [[2, 4, 10, 11, 15, 20, 31, 38, 61, 66, 67, 69, 72, 73, 74, 77, 78, 80, 81, 88, 91],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['jalapeño', 'frost', 'crème', 'café'],\n    'k': 2,\n    'm': 16,\n    'query': ['jalapeño', 'frost', 'smörgås', 'river', 'north', 'stone']},\n   [[0, 1, 4, 8, 9, 13, 14], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 28, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]]]\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":"64ac40bf6135111322ca2e051e3683cec278993328a94b12964cc5e6dd991688","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    m = x['m']\n    k = x['k']\n    def fnv(s, seed):\n        h = (2166136261 ^ seed) & 0xFFFFFFFF\n        for b in s.encode('utf-8'):\n            h = ((h ^ b) * 16777619) & 0xFFFFFFFF\n        return h\n    def probes(s):\n        h1 = fnv(s, 0)\n        h2 = fnv(s, 0x5bd1e995) | 1\n        return [((h1 + i * h2) & 0xFFFFFFFF) % m for i in range(1, k)]\n    bits = [0] * m\n    for s in x['add']:\n        for p in probes(s):\n            bits[p] = 1\n    hits = [all(bits[p] for p in probes(s)) for s in x['query']]\n    return [[i for i in range(m) if bits[i]], hits]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['bloom 0 m=62 k=3',\n   {'add': ['smörgås', 'ember', 'eta', 'jalapeño', 'straße'],\n    'k': 3,\n    'm': 62,\n    'query': ['smörgås', 'ember', 'mu', 'straße', 'beta', 'south']},\n   [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56],\n    [True, True, True, True, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['crème', 'eta', 'øre', 'theta', 'kappa', 'jalapeño'],\n    'k': 4,\n    'm': 64,\n    'query': ['crème', 'eta', 'übung', 'east', 'frost', 'lambda']},\n   [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=39 k=2',\n   {'add': ['straße', 'gamma', 'iota', 'øre'],\n    'k': 2,\n    'm': 39,\n    'query': ['straße', 'gamma', 'eta', 'zeta', 'frost', 'grove']},\n   [[0, 1, 3, 4, 7, 21, 27], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['river', 'jalapeño', 'mu', 'eta', 'übung', 'lambda', 'übung'],\n    'k': 5,\n    'm': 29,\n    'query': ['river', 'jalapeño', 'theta', 'north', 'café', 'naïve']},\n   [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28],\n    [True, True, False, True, False, False]]],\n  ['bloom 4 m=101 k=3',\n   {'add': ['eta', 'gamma', 'naïve', 'straße', 'kappa', 'grove', 'delta', 'café'],\n    'k': 3,\n    'm': 101,\n    'query': ['eta', 'gamma', 'north', 'øre', 'lambda', 'iota']},\n   [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['café', 'stone', 'grove', 'straße'],\n    'k': 2,\n    'm': 16,\n    'query': ['café', 'stone', 'theta', 'naïve', 'gamma', 'ember']},\n   [[0, 3, 8, 9, 10, 15], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 24, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=63 k=3',\n   {'add': ['epsilon', 'south', 'øre', 'mu', 'jalapeño'],\n    'k': 3,\n    'm': 63,\n    'query': ['epsilon', 'south', 'zeta', 'jalapeño', 'east', 'frost']},\n   [[3, 13, 15, 18, 26, 27, 30, 34, 46, 48, 54, 56, 58], [True, True, False, True, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['øre', 'zeta', 'café', 'kappa', 'grove', 'øre'],\n    'k': 4,\n    'm': 64,\n    'query': ['øre', 'zeta', 'naïve', 'smörgås', 'west', 'beta']},\n   [[0, 1, 6, 8, 9, 14, 19, 21, 24, 27, 31, 32, 38, 42, 44, 45, 46, 55, 57, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=41 k=2',\n   {'add': ['west', 'crème', 'jalapeño', 'übung'],\n    'k': 2,\n    'm': 41,\n    'query': ['west', 'crème', 'øre', 'grove', 'frost', 'zeta']},\n   [[3, 15, 21, 23, 26, 27, 40], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['west', 'stone', 'café', 'straße', 'theta', 'crème', 'café'],\n    'k': 5,\n    'm': 29,\n    'query': ['west', 'stone', 'epsilon', 'gamma', 'beta', 'zeta']},\n   [[0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27],\n    [True, True, True, False, False, False]]],\n  ['bloom 4 m=102 k=3',\n   {'add': ['øre', 'smörgås', 'straße', 'crème', 'theta', 'east', 'cloud', 'straße'],\n    'k': 3,\n    'm': 102,\n    'query': ['øre', 'smörgås', 'west', 'epsilon', 'übung', 'grove']},\n   [[2, 7, 8, 16, 30, 31, 36, 39, 42, 49, 53, 60, 62, 63, 64, 75, 84, 89, 94],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['naïve', 'north', 'übung', 'jalapeño'],\n    'k': 2,\n    'm': 16,\n    'query': ['naïve', 'north', 'south', 'gamma', 'theta', 'øre']},\n   [[1, 2, 4, 7, 11], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 25, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=64 k=3',\n   {'add': ['east', 'straße', 'west', 'grove', 'øre'],\n    'k': 3,\n    'm': 64,\n    'query': ['east', 'straße', 'ember', 'eta', 'cloud', 'gamma']},\n   [[3, 6, 19, 24, 25, 31, 38, 46, 53, 54, 57, 60], [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['grove', 'øre', 'west', 'delta', 'north', 'übung'],\n    'k': 4,\n    'm': 64,\n    'query': ['grove', 'øre', 'café', 'straße', 'lambda', 'south']},\n   [[1, 3, 4, 6, 14, 15, 19, 23, 24, 27, 31, 33, 38, 42, 44, 45, 46, 52, 53, 57, 60, 61],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=43 k=2',\n   {'add': ['delta', 'übung', 'gamma', 'café'],\n    'k': 2,\n    'm': 43,\n    'query': ['delta', 'übung', 'epsilon', 'theta', 'smörgås', 'alpha']},\n   [[0, 3, 4, 8, 18, 23, 29, 31], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['beta', 'theta', 'delta', 'east', 'epsilon', 'øre', 'straße'],\n    'k': 5,\n    'm': 29,\n    'query': ['beta', 'theta', 'crème', 'kappa', 'zeta', 'naïve']},\n   [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 28],\n    [True, True, False, True, False, False]]],\n  ['bloom 4 m=103 k=3',\n   {'add': ['ember', 'west', 'smörgås', 'frost', 'south', 'naïve', 'theta', 'jalapeño'],\n    'k': 3,\n    'm': 103,\n    'query': ['ember', 'west', 'stone', 'grove', 'øre', 'cloud']},\n   [[0, 5, 6, 14, 15, 16, 23, 25, 31, 37, 48, 54, 59, 60, 72, 74, 77, 78, 80, 93, 94, 95],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['gamma', 'mu', 'eta', 'øre'],\n    'k': 2,\n    'm': 16,\n    'query': ['gamma', 'mu', 'smörgås', 'ember', 'east', 'øre']},\n   [[3, 6, 7, 8, 10, 11, 14], [True, True, False, False, False, True]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 26, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=65 k=3',\n   {'add': ['alpha', 'ember', 'eta', 'west', 'übung'],\n    'k': 3,\n    'm': 65,\n    'query': ['alpha', 'ember', 'river', 'theta', 'café', 'lambda']},\n   [[0, 6, 7, 9, 14, 15, 16, 26, 28, 37, 47, 49, 56, 64],\n    [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['alpha', 'east', 'epsilon', 'stone', 'grove', 'café'],\n    'k': 4,\n    'm': 64,\n    'query': ['alpha', 'east', 'zeta', 'delta', 'ember', 'west']},\n   [[9, 14, 16, 19, 24, 25, 26, 29, 31, 32, 36, 38, 43, 45, 47, 53, 54, 55, 58, 60],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=45 k=2',\n   {'add': ['gamma', 'north', 'river', 'straße'],\n    'k': 2,\n    'm': 45,\n    'query': ['gamma', 'north', 'lambda', 'mu', 'frost', 'beta']},\n   [[8, 9, 18, 19, 27, 29, 33], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['ember', 'eta', 'smörgås', 'iota', 'café', 'lambda', 'jalapeño'],\n    'k': 5,\n    'm': 29,\n    'query': ['ember', 'eta', 'øre', 'zeta', 'north', 'kappa']},\n   [[0, 3, 5, 7, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 24, 25],\n    [True, True, False, False, False, False]]],\n  ['bloom 4 m=104 k=3',\n   {'add': ['naïve', 'beta', 'straße', 'ember', 'jalapeño', 'theta', 'iota', 'øre'],\n    'k': 3,\n    'm': 104,\n    'query': ['naïve', 'beta', 'zeta', 'smörgås', 'frost', 'delta']},\n   [[0, 8, 9, 11, 16, 28, 30, 31, 34, 37, 47, 49, 52, 53, 57, 67, 78, 82, 87, 90, 93, 98, 99],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['beta', 'øre', 'stone', 'übung'],\n    'k': 2,\n    'm': 16,\n    'query': ['beta', 'øre', 'ember', 'delta', 'zeta', 'iota']},\n   [[1, 3, 4, 6, 7, 10, 15], [True, True, True, False, True, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 27, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=66 k=3',\n   {'add': ['frost', 'smörgås', 'mu', 'grove', 'café'],\n    'k': 3,\n    'm': 66,\n    'query': ['frost', 'smörgås', 'stone', 'delta', 'alpha', 'kappa']},\n   [[0, 6, 14, 29, 33, 36, 37, 41, 45, 46, 51, 55, 58, 61, 62],\n    [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['crème', 'river', 'smörgås', 'lambda', 'kappa', 'straße'],\n    'k': 4,\n    'm': 64,\n    'query': ['crème', 'river', 'zeta', 'mu', 'frost', 'epsilon']},\n   [[1, 3, 6, 8, 11, 16, 17, 18, 24, 25, 27, 30, 32, 37, 39, 42, 46, 60, 61, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=47 k=2',\n   {'add': ['delta', 'south', 'café', 'jalapeño'],\n    'k': 2,\n    'm': 47,\n    'query': ['delta', 'south', 'mu', 'zeta', 'naïve', 'øre']},\n   [[0, 2, 11, 30, 35, 40, 43], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['café', 'cloud', 'straße', 'übung', 'south', 'theta', 'øre'],\n    'k': 5,\n    'm': 29,\n    'query': ['café', 'cloud', 'east', 'zeta', 'øre', 'kappa']},\n   [[1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28],\n    [True, True, False, False, True, False]]],\n  ['bloom 4 m=105 k=3',\n   {'add': ['grove', 'cloud', 'crème', 'iota', 'beta', 'lambda', 'øre', 'übung'],\n    'k': 3,\n    'm': 105,\n    'query': ['grove', 'cloud', 'delta', 'mu', 'zeta', 'café']},\n   [[2, 4, 10, 11, 15, 20, 31, 38, 61, 66, 67, 69, 72, 73, 74, 77, 78, 80, 81, 88, 91],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['jalapeño', 'frost', 'crème', 'café'],\n    'k': 2,\n    'm': 16,\n    'query': ['jalapeño', 'frost', 'smörgås', 'river', 'north', 'stone']},\n   [[0, 1, 4, 8, 9, 13, 14], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 28, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]]]\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":"409257ce1ad3d68eff176ef59bb1064395de80cb799cd272a34aa13bbb7c1bd9","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    m = x['m']\n    k = x['k']\n    def fnv(s, seed):\n        h = (2166136261 ^ seed) & 0xFFFFFFFF\n        for b in s.encode('utf-8'):\n            h = ((h ^ b) * 16777619) & 0xFFFFFFFF\n        return h\n    def probes(s):\n        h1 = fnv(s, 0)\n        h2 = fnv(s, 0x5bd1e995) | 1\n        return [((h1 + i * h2) & 0xFFFFFFFF) % m for i in range(k)]\n    bits = [0] * m\n    for s in x['add']:\n        for p in probes(s):\n            bits[p] = 1\n    hits = [all(bits[p] for p in probes(s)) for s in x['query']]\n    return [[i for i in range(m) if bits[i]], hits]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['bloom 0 m=62 k=3',\n   {'add': ['smörgås', 'ember', 'eta', 'jalapeño', 'straße'],\n    'k': 3,\n    'm': 62,\n    'query': ['smörgås', 'ember', 'mu', 'straße', 'beta', 'south']},\n   [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56],\n    [True, True, True, True, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['crème', 'eta', 'øre', 'theta', 'kappa', 'jalapeño'],\n    'k': 4,\n    'm': 64,\n    'query': ['crème', 'eta', 'übung', 'east', 'frost', 'lambda']},\n   [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=39 k=2',\n   {'add': ['straße', 'gamma', 'iota', 'øre'],\n    'k': 2,\n    'm': 39,\n    'query': ['straße', 'gamma', 'eta', 'zeta', 'frost', 'grove']},\n   [[0, 1, 3, 4, 7, 21, 27], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['river', 'jalapeño', 'mu', 'eta', 'übung', 'lambda', 'übung'],\n    'k': 5,\n    'm': 29,\n    'query': ['river', 'jalapeño', 'theta', 'north', 'café', 'naïve']},\n   [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28],\n    [True, True, False, True, False, False]]],\n  ['bloom 4 m=101 k=3',\n   {'add': ['eta', 'gamma', 'naïve', 'straße', 'kappa', 'grove', 'delta', 'café'],\n    'k': 3,\n    'm': 101,\n    'query': ['eta', 'gamma', 'north', 'øre', 'lambda', 'iota']},\n   [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['café', 'stone', 'grove', 'straße'],\n    'k': 2,\n    'm': 16,\n    'query': ['café', 'stone', 'theta', 'naïve', 'gamma', 'ember']},\n   [[0, 3, 8, 9, 10, 15], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 24, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=63 k=3',\n   {'add': ['epsilon', 'south', 'øre', 'mu', 'jalapeño'],\n    'k': 3,\n    'm': 63,\n    'query': ['epsilon', 'south', 'zeta', 'jalapeño', 'east', 'frost']},\n   [[3, 13, 15, 18, 26, 27, 30, 34, 46, 48, 54, 56, 58], [True, True, False, True, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['øre', 'zeta', 'café', 'kappa', 'grove', 'øre'],\n    'k': 4,\n    'm': 64,\n    'query': ['øre', 'zeta', 'naïve', 'smörgås', 'west', 'beta']},\n   [[0, 1, 6, 8, 9, 14, 19, 21, 24, 27, 31, 32, 38, 42, 44, 45, 46, 55, 57, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=41 k=2',\n   {'add': ['west', 'crème', 'jalapeño', 'übung'],\n    'k': 2,\n    'm': 41,\n    'query': ['west', 'crème', 'øre', 'grove', 'frost', 'zeta']},\n   [[3, 15, 21, 23, 26, 27, 40], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['west', 'stone', 'café', 'straße', 'theta', 'crème', 'café'],\n    'k': 5,\n    'm': 29,\n    'query': ['west', 'stone', 'epsilon', 'gamma', 'beta', 'zeta']},\n   [[0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27],\n    [True, True, True, False, False, False]]],\n  ['bloom 4 m=102 k=3',\n   {'add': ['øre', 'smörgås', 'straße', 'crème', 'theta', 'east', 'cloud', 'straße'],\n    'k': 3,\n    'm': 102,\n    'query': ['øre', 'smörgås', 'west', 'epsilon', 'übung', 'grove']},\n   [[2, 7, 8, 16, 30, 31, 36, 39, 42, 49, 53, 60, 62, 63, 64, 75, 84, 89, 94],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['naïve', 'north', 'übung', 'jalapeño'],\n    'k': 2,\n    'm': 16,\n    'query': ['naïve', 'north', 'south', 'gamma', 'theta', 'øre']},\n   [[1, 2, 4, 7, 11], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 25, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=64 k=3',\n   {'add': ['east', 'straße', 'west', 'grove', 'øre'],\n    'k': 3,\n    'm': 64,\n    'query': ['east', 'straße', 'ember', 'eta', 'cloud', 'gamma']},\n   [[3, 6, 19, 24, 25, 31, 38, 46, 53, 54, 57, 60], [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['grove', 'øre', 'west', 'delta', 'north', 'übung'],\n    'k': 4,\n    'm': 64,\n    'query': ['grove', 'øre', 'café', 'straße', 'lambda', 'south']},\n   [[1, 3, 4, 6, 14, 15, 19, 23, 24, 27, 31, 33, 38, 42, 44, 45, 46, 52, 53, 57, 60, 61],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=43 k=2',\n   {'add': ['delta', 'übung', 'gamma', 'café'],\n    'k': 2,\n    'm': 43,\n    'query': ['delta', 'übung', 'epsilon', 'theta', 'smörgås', 'alpha']},\n   [[0, 3, 4, 8, 18, 23, 29, 31], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['beta', 'theta', 'delta', 'east', 'epsilon', 'øre', 'straße'],\n    'k': 5,\n    'm': 29,\n    'query': ['beta', 'theta', 'crème', 'kappa', 'zeta', 'naïve']},\n   [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 28],\n    [True, True, False, True, False, False]]],\n  ['bloom 4 m=103 k=3',\n   {'add': ['ember', 'west', 'smörgås', 'frost', 'south', 'naïve', 'theta', 'jalapeño'],\n    'k': 3,\n    'm': 103,\n    'query': ['ember', 'west', 'stone', 'grove', 'øre', 'cloud']},\n   [[0, 5, 6, 14, 15, 16, 23, 25, 31, 37, 48, 54, 59, 60, 72, 74, 77, 78, 80, 93, 94, 95],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['gamma', 'mu', 'eta', 'øre'],\n    'k': 2,\n    'm': 16,\n    'query': ['gamma', 'mu', 'smörgås', 'ember', 'east', 'øre']},\n   [[3, 6, 7, 8, 10, 11, 14], [True, True, False, False, False, True]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 26, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=65 k=3',\n   {'add': ['alpha', 'ember', 'eta', 'west', 'übung'],\n    'k': 3,\n    'm': 65,\n    'query': ['alpha', 'ember', 'river', 'theta', 'café', 'lambda']},\n   [[0, 6, 7, 9, 14, 15, 16, 26, 28, 37, 47, 49, 56, 64],\n    [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['alpha', 'east', 'epsilon', 'stone', 'grove', 'café'],\n    'k': 4,\n    'm': 64,\n    'query': ['alpha', 'east', 'zeta', 'delta', 'ember', 'west']},\n   [[9, 14, 16, 19, 24, 25, 26, 29, 31, 32, 36, 38, 43, 45, 47, 53, 54, 55, 58, 60],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=45 k=2',\n   {'add': ['gamma', 'north', 'river', 'straße'],\n    'k': 2,\n    'm': 45,\n    'query': ['gamma', 'north', 'lambda', 'mu', 'frost', 'beta']},\n   [[8, 9, 18, 19, 27, 29, 33], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['ember', 'eta', 'smörgås', 'iota', 'café', 'lambda', 'jalapeño'],\n    'k': 5,\n    'm': 29,\n    'query': ['ember', 'eta', 'øre', 'zeta', 'north', 'kappa']},\n   [[0, 3, 5, 7, 9, 10, 12, 13, 14, 15, 17, 19, 20, 21, 24, 25],\n    [True, True, False, False, False, False]]],\n  ['bloom 4 m=104 k=3',\n   {'add': ['naïve', 'beta', 'straße', 'ember', 'jalapeño', 'theta', 'iota', 'øre'],\n    'k': 3,\n    'm': 104,\n    'query': ['naïve', 'beta', 'zeta', 'smörgås', 'frost', 'delta']},\n   [[0, 8, 9, 11, 16, 28, 30, 31, 34, 37, 47, 49, 52, 53, 57, 67, 78, 82, 87, 90, 93, 98, 99],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['beta', 'øre', 'stone', 'übung'],\n    'k': 2,\n    'm': 16,\n    'query': ['beta', 'øre', 'ember', 'delta', 'zeta', 'iota']},\n   [[1, 3, 4, 6, 7, 10, 15], [True, True, True, False, True, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 27, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]],\n [['bloom 0 m=66 k=3',\n   {'add': ['frost', 'smörgås', 'mu', 'grove', 'café'],\n    'k': 3,\n    'm': 66,\n    'query': ['frost', 'smörgås', 'stone', 'delta', 'alpha', 'kappa']},\n   [[0, 6, 14, 29, 33, 36, 37, 41, 45, 46, 51, 55, 58, 61, 62],\n    [True, True, False, False, False, False]]],\n  ['bloom 1 m=64 k=4',\n   {'add': ['crème', 'river', 'smörgås', 'lambda', 'kappa', 'straße'],\n    'k': 4,\n    'm': 64,\n    'query': ['crème', 'river', 'zeta', 'mu', 'frost', 'epsilon']},\n   [[1, 3, 6, 8, 11, 16, 17, 18, 24, 25, 27, 30, 32, 37, 39, 42, 46, 60, 61, 63],\n    [True, True, False, False, False, False]]],\n  ['bloom 2 m=47 k=2',\n   {'add': ['delta', 'south', 'café', 'jalapeño'],\n    'k': 2,\n    'm': 47,\n    'query': ['delta', 'south', 'mu', 'zeta', 'naïve', 'øre']},\n   [[0, 2, 11, 30, 35, 40, 43], [True, True, False, False, False, False]]],\n  ['bloom 3 m=29 k=5',\n   {'add': ['café', 'cloud', 'straße', 'übung', 'south', 'theta', 'øre'],\n    'k': 5,\n    'm': 29,\n    'query': ['café', 'cloud', 'east', 'zeta', 'øre', 'kappa']},\n   [[1, 2, 4, 6, 7, 10, 11, 12, 13, 14, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28],\n    [True, True, False, False, True, False]]],\n  ['bloom 4 m=105 k=3',\n   {'add': ['grove', 'cloud', 'crème', 'iota', 'beta', 'lambda', 'øre', 'übung'],\n    'k': 3,\n    'm': 105,\n    'query': ['grove', 'cloud', 'delta', 'mu', 'zeta', 'café']},\n   [[2, 4, 10, 11, 15, 20, 31, 38, 61, 66, 67, 69, 72, 73, 74, 77, 78, 80, 81, 88, 91],\n    [True, True, False, False, False, False]]],\n  ['bloom 5 m=16 k=2',\n   {'add': ['jalapeño', 'frost', 'crème', 'café'],\n    'k': 2,\n    'm': 16,\n    'query': ['jalapeño', 'frost', 'smörgås', 'river', 'north', 'stone']},\n   [[0, 1, 4, 8, 9, 13, 14], [True, True, False, False, False, False]]],\n  ['empty filter rejects everything',\n   {'add': [], 'k': 3, 'm': 28, 'query': ['alpha', 'mu']},\n   [[], [False, False]]]]]\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-bloom-double-hashing-probe-range","generated_at":"2026-09-29T14:48:42.120029+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Bloom filters built with Kirsch-Mitzenmacher double hashing must reproduce the exact same probe sequence across writers and readers; any drift silently changes the bit layout.","repair":"Generate probes for i in range(k), starting at the base hash h1.","root_cause":"The probe loop starts at i=1, so the h1 base position (i=0) is never used and only k-1 probes are set.","sha256":"0985219cf5d0124488cb4eac6721571e14d8f14b73758888f4f28f0e05ba9824","title":"Bloom filter with double hashing: probe sequence skips the base probe · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.147,"exit_code":1,"observations":[{"actual":[[0,1,8,15,17,18,20,23,24,43,45,46,51,56],[true,true,true,true,false,false]],"check":"bloom 0 m=62 k=3","expected":[[0,1,15,16,18,19,20,23,26,43,46,49,51,52,56],[true,true,true,true,false,false]],"passed":false},{"actual":[[0,1,6,8,10,20,23,26,27,29,30,31,32,37,41,43,44,46,47,57,63],[true,true,false,false,false,false]],"check":"bloom 1 m=64 k=4","expected":[[0,1,6,8,10,17,19,20,23,26,27,30,32,37,39,41,44,46,57,61,63],[true,true,false,false,false,false]],"passed":false},{"actual":[[0,1,4,9,12,21,34],[true,true,false,false,false,false]],"check":"bloom 2 m=39 k=2","expected":[[0,1,3,4,7,21,27],[true,true,false,false,false,false]],"passed":false},{"actual":[[0,3,4,5,8,9,10,11,13,14,15,17,19,20,21,22,24,25,28],[true,true,false,false,false,false]],"check":"bloom 3 m=29 k=5","expected":[[0,3,5,8,9,10,11,13,14,15,16,17,20,21,22,24,25,28],[true,true,false,true,false,false]],"passed":false},{"actual":[[1,16,19,20,21,23,34,37,39,44,50,52,53,60,66,67,74,79,81,86,94],[true,true,false,false,false,false]],"check":"bloom 4 m=101 k=3","expected":[[1,16,19,20,23,28,36,44,46,50,52,53,66,74,79,80,82,83,84,86,94],[true,true,false,false,false,false]],"passed":false},{"actual":[[0,3,4,6,7,14,15],[true,true,false,false,false,false]],"check":"bloom 5 m=16 k=2","expected":[[0,3,8,9,10,15],[true,true,false,false,false,false]],"passed":false},{"actual":[[],[false,false]],"check":"empty filter rejects everything","expected":[[],[false,false]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"bloom 0 m=62 k=3\", \"actual\": [[0, 1, 8, 15, 17, 18, 20, 23, 24, 43, 45, 46, 51, 56], [true, true, true, true, false, false]], \"expected\": [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56], [true, true, true, true, false, false]], \"passed\": false}, {\"check\": \"bloom 1 m=64 k=4\", \"actual\": [[0, 1, 6, 8, 10, 20, 23, 26, 27, 29, 30, 31, 32, 37, 41, 43, 44, 46, 47, 57, 63], [true, true, false, false, false, false]], \"expected\": [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"bloom 2 m=39 k=2\", \"actual\": [[0, 1, 4, 9, 12, 21, 34], [true, true, false, false, false, false]], \"expected\": [[0, 1, 3, 4, 7, 21, 27], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"bloom 3 m=29 k=5\", \"actual\": [[0, 3, 4, 5, 8, 9, 10, 11, 13, 14, 15, 17, 19, 20, 21, 22, 24, 25, 28], [true, true, false, false, false, false]], \"expected\": [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28], [true, true, false, true, false, false]], \"passed\": false}, {\"check\": \"bloom 4 m=101 k=3\", \"actual\": [[1, 16, 19, 20, 21, 23, 34, 37, 39, 44, 50, 52, 53, 60, 66, 67, 74, 79, 81, 86, 94], [true, true, false, false, false, false]], \"expected\": [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"bloom 5 m=16 k=2\", \"actual\": [[0, 3, 4, 6, 7, 14, 15], [true, true, false, false, false, false]], \"expected\": [[0, 3, 8, 9, 10, 15], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"empty filter rejects everything\", \"actual\": [[], [false, false]], \"expected\": [[], [false, false]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.656,"exit_code":1,"observations":[{"actual":[[0,1,15,18,20,23,43,46,51,56],[true,true,true,true,false,false]],"check":"bloom 0 m=62 k=3","expected":[[0,1,15,16,18,19,20,23,26,43,46,49,51,52,56],[true,true,true,true,false,false]],"passed":false},{"actual":[[0,1,6,8,10,20,23,26,27,30,32,37,41,44,46,57,63],[true,true,false,false,false,true]],"check":"bloom 1 m=64 k=4","expected":[[0,1,6,8,10,17,19,20,23,26,27,30,32,37,39,41,44,46,57,61,63],[true,true,false,false,false,false]],"passed":false},{"actual":[[0,1,4,21],[true,true,false,false,false,false]],"check":"bloom 2 m=39 k=2","expected":[[0,1,3,4,7,21,27],[true,true,false,false,false,false]],"passed":false},{"actual":[[3,5,8,9,10,11,13,14,15,17,20,21,22,24,25,28],[true,true,false,true,false,false]],"check":"bloom 3 m=29 k=5","expected":[[0,3,5,8,9,10,11,13,14,15,16,17,20,21,22,24,25,28],[true,true,false,true,false,false]],"passed":false},{"actual":[[1,16,19,20,23,44,50,52,53,66,74,79,86,94],[true,true,false,false,false,false]],"check":"bloom 4 m=101 k=3","expected":[[1,16,19,20,23,28,36,44,46,50,52,53,66,74,79,80,82,83,84,86,94],[true,true,false,false,false,false]],"passed":false},{"actual":[[0,3,15],[true,true,true,false,false,true]],"check":"bloom 5 m=16 k=2","expected":[[0,3,8,9,10,15],[true,true,false,false,false,false]],"passed":false},{"actual":[[],[false,false]],"check":"empty filter rejects everything","expected":[[],[false,false]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"bloom 0 m=62 k=3\", \"actual\": [[0, 1, 15, 18, 20, 23, 43, 46, 51, 56], [true, true, true, true, false, false]], \"expected\": [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56], [true, true, true, true, false, false]], \"passed\": false}, {\"check\": \"bloom 1 m=64 k=4\", \"actual\": [[0, 1, 6, 8, 10, 20, 23, 26, 27, 30, 32, 37, 41, 44, 46, 57, 63], [true, true, false, false, false, true]], \"expected\": [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"bloom 2 m=39 k=2\", \"actual\": [[0, 1, 4, 21], [true, true, false, false, false, false]], \"expected\": [[0, 1, 3, 4, 7, 21, 27], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"bloom 3 m=29 k=5\", \"actual\": [[3, 5, 8, 9, 10, 11, 13, 14, 15, 17, 20, 21, 22, 24, 25, 28], [true, true, false, true, false, false]], \"expected\": [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28], [true, true, false, true, false, false]], \"passed\": false}, {\"check\": \"bloom 4 m=101 k=3\", \"actual\": [[1, 16, 19, 20, 23, 44, 50, 52, 53, 66, 74, 79, 86, 94], [true, true, false, false, false, false]], \"expected\": [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"bloom 5 m=16 k=2\", \"actual\": [[0, 3, 15], [true, true, true, false, false, true]], \"expected\": [[0, 3, 8, 9, 10, 15], [true, true, false, false, false, false]], \"passed\": false}, {\"check\": \"empty filter rejects everything\", \"actual\": [[], [false, false]], \"expected\": [[], [false, false]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.728,"exit_code":0,"observations":[{"actual":[[0,1,15,16,18,19,20,23,26,43,46,49,51,52,56],[true,true,true,true,false,false]],"check":"bloom 0 m=62 k=3","expected":[[0,1,15,16,18,19,20,23,26,43,46,49,51,52,56],[true,true,true,true,false,false]],"passed":true},{"actual":[[0,1,6,8,10,17,19,20,23,26,27,30,32,37,39,41,44,46,57,61,63],[true,true,false,false,false,false]],"check":"bloom 1 m=64 k=4","expected":[[0,1,6,8,10,17,19,20,23,26,27,30,32,37,39,41,44,46,57,61,63],[true,true,false,false,false,false]],"passed":true},{"actual":[[0,1,3,4,7,21,27],[true,true,false,false,false,false]],"check":"bloom 2 m=39 k=2","expected":[[0,1,3,4,7,21,27],[true,true,false,false,false,false]],"passed":true},{"actual":[[0,3,5,8,9,10,11,13,14,15,16,17,20,21,22,24,25,28],[true,true,false,true,false,false]],"check":"bloom 3 m=29 k=5","expected":[[0,3,5,8,9,10,11,13,14,15,16,17,20,21,22,24,25,28],[true,true,false,true,false,false]],"passed":true},{"actual":[[1,16,19,20,23,28,36,44,46,50,52,53,66,74,79,80,82,83,84,86,94],[true,true,false,false,false,false]],"check":"bloom 4 m=101 k=3","expected":[[1,16,19,20,23,28,36,44,46,50,52,53,66,74,79,80,82,83,84,86,94],[true,true,false,false,false,false]],"passed":true},{"actual":[[0,3,8,9,10,15],[true,true,false,false,false,false]],"check":"bloom 5 m=16 k=2","expected":[[0,3,8,9,10,15],[true,true,false,false,false,false]],"passed":true},{"actual":[[],[false,false]],"check":"empty filter rejects everything","expected":[[],[false,false]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"bloom 0 m=62 k=3\", \"actual\": [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56], [true, true, true, true, false, false]], \"expected\": [[0, 1, 15, 16, 18, 19, 20, 23, 26, 43, 46, 49, 51, 52, 56], [true, true, true, true, false, false]], \"passed\": true}, {\"check\": \"bloom 1 m=64 k=4\", \"actual\": [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63], [true, true, false, false, false, false]], \"expected\": [[0, 1, 6, 8, 10, 17, 19, 20, 23, 26, 27, 30, 32, 37, 39, 41, 44, 46, 57, 61, 63], [true, true, false, false, false, false]], \"passed\": true}, {\"check\": \"bloom 2 m=39 k=2\", \"actual\": [[0, 1, 3, 4, 7, 21, 27], [true, true, false, false, false, false]], \"expected\": [[0, 1, 3, 4, 7, 21, 27], [true, true, false, false, false, false]], \"passed\": true}, {\"check\": \"bloom 3 m=29 k=5\", \"actual\": [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28], [true, true, false, true, false, false]], \"expected\": [[0, 3, 5, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 21, 22, 24, 25, 28], [true, true, false, true, false, false]], \"passed\": true}, {\"check\": \"bloom 4 m=101 k=3\", \"actual\": [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94], [true, true, false, false, false, false]], \"expected\": [[1, 16, 19, 20, 23, 28, 36, 44, 46, 50, 52, 53, 66, 74, 79, 80, 82, 83, 84, 86, 94], [true, true, false, false, false, false]], \"passed\": true}, {\"check\": \"bloom 5 m=16 k=2\", \"actual\": [[0, 3, 8, 9, 10, 15], [true, true, false, false, false, false]], \"expected\": [[0, 3, 8, 9, 10, 15], [true, true, false, false, false, false]], \"passed\": true}, {\"check\": \"empty filter rejects everything\", \"actual\": [[], [false, false]], \"expected\": [[], [false, false]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}