{"abstract":"Equal keys resolve differently from the contract, making replays disagree.","category":"Probabilistic sketches","checks":7,"contract":"Input {k, items} where each item is [id, weight, num, den] with u = num/den in (0,1). Items with weight <= 0 are ineligible. Each eligible item gets key u^(1/weight), compared as ln(u)/weight. Return the ids of the k largest keys, largest first, ties broken by smaller id.","evaluation_group":"w2-probabilistic_sketches-weighted-reservoir-ares","failed_approach":"Dropping the tie-break collapses equal keys into arbitrary order and loses the ids.","family":"w2-probabilistic_sketches-weighted-reservoir-ares-tie-order","id":"FA-73181","implementations":{"attempt":{"sha256":"0b1e40e76ef993188e624ff8f8b594f97dd3a1ba09d25c36cf2819dce1318130","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k = x['k']\n    keyed = []\n    for ident, wt, num, den in x['items']:\n        if wt <= 0:\n            continue\n        key = math.log(num / den) / wt\n        keyed.append((key, 0 * ident))\n    keyed.sort(reverse=True)\n    return [-negid for key, negid in keyed[:k]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['weighted sample 0 k=2',\n   {'items': [[0, 0.5, 91, 99],\n              [1, 1, 42, 99],\n              [2, 5, 91, 99],\n              [3, 0.5, 48, 99],\n              [4, 0.5, 13, 99],\n              [5, 3, 4, 99],\n              [6, 3, 63, 99],\n              [7, 2, 87, 99]],\n    'k': 2},\n   [2, 7]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 65, 99],\n              [1, 0.5, 34, 99],\n              [2, 2, 22, 99],\n              [3, 1, 43, 99],\n              [4, 1, 77, 99],\n              [5, 0.5, 50, 99],\n              [6, 5, 2, 99],\n              [7, 3, 76, 99]],\n    'k': 3},\n   [7, 4, 0]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 1, 74, 99],\n              [1, 3, 25, 99],\n              [2, 3, 5, 99],\n              [3, 0.5, 53, 99],\n              [4, 1, 61, 99],\n              [5, 1, 6, 99],\n              [6, 5, 34, 99],\n              [7, 3, 56, 99]],\n    'k': 4},\n   [7, 6, 0, 1]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 41, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 11, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 21, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 31, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 1, 8, 99],\n              [1, 5, 66, 99],\n              [2, 5, 27, 99],\n              [3, 5, 16, 99],\n              [4, 0.5, 70, 99],\n              [5, 3, 4, 99],\n              [6, 0.5, 5, 99],\n              [7, 0.5, 32, 99]],\n    'k': 2},\n   [1, 2]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 0.5, 34, 99],\n              [1, 0.5, 41, 99],\n              [2, 5, 97, 99],\n              [3, 3, 35, 99],\n              [4, 3, 98, 99],\n              [5, 3, 86, 99],\n              [6, 0.5, 26, 99],\n              [7, 1, 66, 99]],\n    'k': 3},\n   [4, 2, 5]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 2, 63, 99],\n              [1, 5, 82, 99],\n              [2, 0.5, 17, 99],\n              [3, 3, 50, 99],\n              [4, 3, 90, 99],\n              [5, 5, 18, 99],\n              [6, 1, 85, 99],\n              [7, 1, 8, 99]],\n    'k': 4},\n   [4, 1, 6, 0]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 42, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 12, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 22, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 32, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 2, 38, 99],\n              [1, 2, 4, 99],\n              [2, 5, 4, 99],\n              [3, 5, 92, 99],\n              [4, 5, 71, 99],\n              [5, 1, 36, 99],\n              [6, 2, 24, 99],\n              [7, 3, 79, 99]],\n    'k': 2},\n   [3, 4]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 74, 99],\n              [1, 5, 71, 99],\n              [2, 3, 25, 99],\n              [3, 0.5, 97, 99],\n              [4, 5, 51, 99],\n              [5, 1, 86, 99],\n              [6, 1, 82, 99],\n              [7, 5, 81, 99]],\n    'k': 3},\n   [7, 3, 1]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 5, 98, 99],\n              [1, 2, 23, 99],\n              [2, 5, 17, 99],\n              [3, 2, 35, 99],\n              [4, 0.5, 16, 99],\n              [5, 3, 77, 99],\n              [6, 3, 56, 99],\n              [7, 0.5, 87, 99]],\n    'k': 4},\n   [0, 5, 6, 7]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 43, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 13, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 23, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 33, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 5, 55, 99],\n              [1, 2, 83, 99],\n              [2, 2, 87, 99],\n              [3, 3, 17, 99],\n              [4, 1, 74, 99],\n              [5, 0.5, 82, 99],\n              [6, 2, 71, 99],\n              [7, 1, 7, 99]],\n    'k': 2},\n   [2, 1]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 55, 99],\n              [1, 1, 50, 99],\n              [2, 2, 55, 99],\n              [3, 1, 34, 99],\n              [4, 1, 58, 99],\n              [5, 3, 47, 99],\n              [6, 0.5, 66, 99],\n              [7, 2, 69, 99]],\n    'k': 3},\n   [7, 5, 2]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 3, 42, 99],\n              [1, 0.5, 69, 99],\n              [2, 3, 41, 99],\n              [3, 0.5, 42, 99],\n              [4, 2, 48, 99],\n              [5, 5, 91, 99],\n              [6, 5, 74, 99],\n              [7, 3, 31, 99]],\n    'k': 4},\n   [5, 6, 0, 2]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 44, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 14, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 24, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 34, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 1, 87, 99],\n              [1, 1, 1, 99],\n              [2, 2, 6, 99],\n              [3, 5, 67, 99],\n              [4, 1, 66, 99],\n              [5, 3, 45, 99],\n              [6, 0.5, 25, 99],\n              [7, 1, 41, 99]],\n    'k': 2},\n   [3, 0]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 25, 99],\n              [1, 3, 18, 99],\n              [2, 5, 2, 99],\n              [3, 2, 65, 99],\n              [4, 3, 14, 99],\n              [5, 3, 89, 99],\n              [6, 3, 10, 99],\n              [7, 1, 78, 99]],\n    'k': 3},\n   [5, 3, 7]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 2, 49, 99],\n              [1, 2, 66, 99],\n              [2, 0.5, 24, 99],\n              [3, 0.5, 88, 99],\n              [4, 1, 6, 99],\n              [5, 1, 8, 99],\n              [6, 1, 93, 99],\n              [7, 0.5, 41, 99]],\n    'k': 4},\n   [6, 1, 3, 0]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 45, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 15, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 25, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 35, 100], [3, 1, 70, 100]], 'k': 2},\n   [2, 3]]]]\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":"4e577b7a1f61b1d4f66077cecd457e8d82e2c5f52de6b521e5c487baaacb13f6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k = x['k']\n    keyed = []\n    for ident, wt, num, den in x['items']:\n        if wt <= 0:\n            continue\n        key = math.log(num / den) / wt\n        keyed.append((key, ident))\n    keyed.sort(reverse=True)\n    return [-negid for key, negid in keyed[:k]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['weighted sample 0 k=2',\n   {'items': [[0, 0.5, 91, 99],\n              [1, 1, 42, 99],\n              [2, 5, 91, 99],\n              [3, 0.5, 48, 99],\n              [4, 0.5, 13, 99],\n              [5, 3, 4, 99],\n              [6, 3, 63, 99],\n              [7, 2, 87, 99]],\n    'k': 2},\n   [2, 7]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 65, 99],\n              [1, 0.5, 34, 99],\n              [2, 2, 22, 99],\n              [3, 1, 43, 99],\n              [4, 1, 77, 99],\n              [5, 0.5, 50, 99],\n              [6, 5, 2, 99],\n              [7, 3, 76, 99]],\n    'k': 3},\n   [7, 4, 0]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 1, 74, 99],\n              [1, 3, 25, 99],\n              [2, 3, 5, 99],\n              [3, 0.5, 53, 99],\n              [4, 1, 61, 99],\n              [5, 1, 6, 99],\n              [6, 5, 34, 99],\n              [7, 3, 56, 99]],\n    'k': 4},\n   [7, 6, 0, 1]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 41, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 11, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 21, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 31, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 1, 8, 99],\n              [1, 5, 66, 99],\n              [2, 5, 27, 99],\n              [3, 5, 16, 99],\n              [4, 0.5, 70, 99],\n              [5, 3, 4, 99],\n              [6, 0.5, 5, 99],\n              [7, 0.5, 32, 99]],\n    'k': 2},\n   [1, 2]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 0.5, 34, 99],\n              [1, 0.5, 41, 99],\n              [2, 5, 97, 99],\n              [3, 3, 35, 99],\n              [4, 3, 98, 99],\n              [5, 3, 86, 99],\n              [6, 0.5, 26, 99],\n              [7, 1, 66, 99]],\n    'k': 3},\n   [4, 2, 5]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 2, 63, 99],\n              [1, 5, 82, 99],\n              [2, 0.5, 17, 99],\n              [3, 3, 50, 99],\n              [4, 3, 90, 99],\n              [5, 5, 18, 99],\n              [6, 1, 85, 99],\n              [7, 1, 8, 99]],\n    'k': 4},\n   [4, 1, 6, 0]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 42, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 12, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 22, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 32, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 2, 38, 99],\n              [1, 2, 4, 99],\n              [2, 5, 4, 99],\n              [3, 5, 92, 99],\n              [4, 5, 71, 99],\n              [5, 1, 36, 99],\n              [6, 2, 24, 99],\n              [7, 3, 79, 99]],\n    'k': 2},\n   [3, 4]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 74, 99],\n              [1, 5, 71, 99],\n              [2, 3, 25, 99],\n              [3, 0.5, 97, 99],\n              [4, 5, 51, 99],\n              [5, 1, 86, 99],\n              [6, 1, 82, 99],\n              [7, 5, 81, 99]],\n    'k': 3},\n   [7, 3, 1]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 5, 98, 99],\n              [1, 2, 23, 99],\n              [2, 5, 17, 99],\n              [3, 2, 35, 99],\n              [4, 0.5, 16, 99],\n              [5, 3, 77, 99],\n              [6, 3, 56, 99],\n              [7, 0.5, 87, 99]],\n    'k': 4},\n   [0, 5, 6, 7]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 43, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 13, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 23, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 33, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 5, 55, 99],\n              [1, 2, 83, 99],\n              [2, 2, 87, 99],\n              [3, 3, 17, 99],\n              [4, 1, 74, 99],\n              [5, 0.5, 82, 99],\n              [6, 2, 71, 99],\n              [7, 1, 7, 99]],\n    'k': 2},\n   [2, 1]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 55, 99],\n              [1, 1, 50, 99],\n              [2, 2, 55, 99],\n              [3, 1, 34, 99],\n              [4, 1, 58, 99],\n              [5, 3, 47, 99],\n              [6, 0.5, 66, 99],\n              [7, 2, 69, 99]],\n    'k': 3},\n   [7, 5, 2]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 3, 42, 99],\n              [1, 0.5, 69, 99],\n              [2, 3, 41, 99],\n              [3, 0.5, 42, 99],\n              [4, 2, 48, 99],\n              [5, 5, 91, 99],\n              [6, 5, 74, 99],\n              [7, 3, 31, 99]],\n    'k': 4},\n   [5, 6, 0, 2]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 44, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 14, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 24, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 34, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 1, 87, 99],\n              [1, 1, 1, 99],\n              [2, 2, 6, 99],\n              [3, 5, 67, 99],\n              [4, 1, 66, 99],\n              [5, 3, 45, 99],\n              [6, 0.5, 25, 99],\n              [7, 1, 41, 99]],\n    'k': 2},\n   [3, 0]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 25, 99],\n              [1, 3, 18, 99],\n              [2, 5, 2, 99],\n              [3, 2, 65, 99],\n              [4, 3, 14, 99],\n              [5, 3, 89, 99],\n              [6, 3, 10, 99],\n              [7, 1, 78, 99]],\n    'k': 3},\n   [5, 3, 7]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 2, 49, 99],\n              [1, 2, 66, 99],\n              [2, 0.5, 24, 99],\n              [3, 0.5, 88, 99],\n              [4, 1, 6, 99],\n              [5, 1, 8, 99],\n              [6, 1, 93, 99],\n              [7, 0.5, 41, 99]],\n    'k': 4},\n   [6, 1, 3, 0]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 45, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 15, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 25, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 35, 100], [3, 1, 70, 100]], 'k': 2},\n   [2, 3]]]]\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":"258ac424db1b6b4e7c70eee463ec0fe659d88534f1c2d31dfd76d70200b5f4ae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(x):\n    k = x['k']\n    keyed = []\n    for ident, wt, num, den in x['items']:\n        if wt <= 0:\n            continue\n        key = math.log(num / den) / wt\n        keyed.append((key, -ident))\n    keyed.sort(reverse=True)\n    return [-negid for key, negid in keyed[:k]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[['weighted sample 0 k=2',\n   {'items': [[0, 0.5, 91, 99],\n              [1, 1, 42, 99],\n              [2, 5, 91, 99],\n              [3, 0.5, 48, 99],\n              [4, 0.5, 13, 99],\n              [5, 3, 4, 99],\n              [6, 3, 63, 99],\n              [7, 2, 87, 99]],\n    'k': 2},\n   [2, 7]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 65, 99],\n              [1, 0.5, 34, 99],\n              [2, 2, 22, 99],\n              [3, 1, 43, 99],\n              [4, 1, 77, 99],\n              [5, 0.5, 50, 99],\n              [6, 5, 2, 99],\n              [7, 3, 76, 99]],\n    'k': 3},\n   [7, 4, 0]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 1, 74, 99],\n              [1, 3, 25, 99],\n              [2, 3, 5, 99],\n              [3, 0.5, 53, 99],\n              [4, 1, 61, 99],\n              [5, 1, 6, 99],\n              [6, 5, 34, 99],\n              [7, 3, 56, 99]],\n    'k': 4},\n   [7, 6, 0, 1]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 41, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 11, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 21, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 31, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 1, 8, 99],\n              [1, 5, 66, 99],\n              [2, 5, 27, 99],\n              [3, 5, 16, 99],\n              [4, 0.5, 70, 99],\n              [5, 3, 4, 99],\n              [6, 0.5, 5, 99],\n              [7, 0.5, 32, 99]],\n    'k': 2},\n   [1, 2]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 0.5, 34, 99],\n              [1, 0.5, 41, 99],\n              [2, 5, 97, 99],\n              [3, 3, 35, 99],\n              [4, 3, 98, 99],\n              [5, 3, 86, 99],\n              [6, 0.5, 26, 99],\n              [7, 1, 66, 99]],\n    'k': 3},\n   [4, 2, 5]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 2, 63, 99],\n              [1, 5, 82, 99],\n              [2, 0.5, 17, 99],\n              [3, 3, 50, 99],\n              [4, 3, 90, 99],\n              [5, 5, 18, 99],\n              [6, 1, 85, 99],\n              [7, 1, 8, 99]],\n    'k': 4},\n   [4, 1, 6, 0]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 42, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 12, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 22, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 32, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 2, 38, 99],\n              [1, 2, 4, 99],\n              [2, 5, 4, 99],\n              [3, 5, 92, 99],\n              [4, 5, 71, 99],\n              [5, 1, 36, 99],\n              [6, 2, 24, 99],\n              [7, 3, 79, 99]],\n    'k': 2},\n   [3, 4]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 74, 99],\n              [1, 5, 71, 99],\n              [2, 3, 25, 99],\n              [3, 0.5, 97, 99],\n              [4, 5, 51, 99],\n              [5, 1, 86, 99],\n              [6, 1, 82, 99],\n              [7, 5, 81, 99]],\n    'k': 3},\n   [7, 3, 1]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 5, 98, 99],\n              [1, 2, 23, 99],\n              [2, 5, 17, 99],\n              [3, 2, 35, 99],\n              [4, 0.5, 16, 99],\n              [5, 3, 77, 99],\n              [6, 3, 56, 99],\n              [7, 0.5, 87, 99]],\n    'k': 4},\n   [0, 5, 6, 7]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 43, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 13, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 23, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 33, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 5, 55, 99],\n              [1, 2, 83, 99],\n              [2, 2, 87, 99],\n              [3, 3, 17, 99],\n              [4, 1, 74, 99],\n              [5, 0.5, 82, 99],\n              [6, 2, 71, 99],\n              [7, 1, 7, 99]],\n    'k': 2},\n   [2, 1]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 55, 99],\n              [1, 1, 50, 99],\n              [2, 2, 55, 99],\n              [3, 1, 34, 99],\n              [4, 1, 58, 99],\n              [5, 3, 47, 99],\n              [6, 0.5, 66, 99],\n              [7, 2, 69, 99]],\n    'k': 3},\n   [7, 5, 2]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 3, 42, 99],\n              [1, 0.5, 69, 99],\n              [2, 3, 41, 99],\n              [3, 0.5, 42, 99],\n              [4, 2, 48, 99],\n              [5, 5, 91, 99],\n              [6, 5, 74, 99],\n              [7, 3, 31, 99]],\n    'k': 4},\n   [5, 6, 0, 2]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 44, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 14, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 24, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 34, 100], [3, 1, 70, 100]], 'k': 2},\n   [3, 2]]],\n [['weighted sample 0 k=2',\n   {'items': [[0, 1, 87, 99],\n              [1, 1, 1, 99],\n              [2, 2, 6, 99],\n              [3, 5, 67, 99],\n              [4, 1, 66, 99],\n              [5, 3, 45, 99],\n              [6, 0.5, 25, 99],\n              [7, 1, 41, 99]],\n    'k': 2},\n   [3, 0]],\n  ['weighted sample 1 k=3',\n   {'items': [[0, 1, 25, 99],\n              [1, 3, 18, 99],\n              [2, 5, 2, 99],\n              [3, 2, 65, 99],\n              [4, 3, 14, 99],\n              [5, 3, 89, 99],\n              [6, 3, 10, 99],\n              [7, 1, 78, 99]],\n    'k': 3},\n   [5, 3, 7]],\n  ['weighted sample 2 k=4',\n   {'items': [[0, 2, 49, 99],\n              [1, 2, 66, 99],\n              [2, 0.5, 24, 99],\n              [3, 0.5, 88, 99],\n              [4, 1, 6, 99],\n              [5, 1, 8, 99],\n              [6, 1, 93, 99],\n              [7, 0.5, 41, 99]],\n    'k': 4},\n   [6, 1, 3, 0]],\n  ['zero and negative weights',\n   {'items': [[1, 0, 50, 99], [2, -1, 30, 99], [3, 2, 45, 99], [4, 1, 90, 99]], 'k': 3},\n   [4, 3]],\n  ['equal keys tie',\n   {'items': [[7, 2, 49, 100], [3, 2, 49, 100], [5, 1, 15, 100]], 'k': 2},\n   [3, 7]],\n  ['heavier weight wins', {'items': [[1, 1, 60, 100], [2, 4, 25, 100]], 'k': 1}, [2]],\n  ['light weight small uniform',\n   {'items': [[1, 0.25, 90, 100], [2, 3, 35, 100], [3, 1, 70, 100]], 'k': 2},\n   [2, 3]]]]\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-weighted-reservoir-ares-tie-order","generated_at":"2026-09-29T14:48:45.185660+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Weighted sampling without replacement (A-Res) chooses representative traces or accounts in proportion to traffic; key or eligibility mistakes skew the sample.","repair":"Store the negated id so the smaller id wins ties in descending order.","root_cause":"The tie-break component stores the id itself, so larger ids sort first under reverse order.","sha256":"c6dccbae7617f7dd9e1039376fd29de9e2a1e4cbfa9e0fb4a7e8650ff6f94cc4","title":"Weighted reservoir sampling by exponential keys: ties favour the larger id · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.165,"exit_code":1,"observations":[{"actual":[0,0],"check":"weighted sample 0 k=2","expected":[2,7],"passed":false},{"actual":[0,0,0],"check":"weighted sample 1 k=3","expected":[7,4,0],"passed":false},{"actual":[0,0,0,0],"check":"weighted sample 2 k=4","expected":[7,6,0,1],"passed":false},{"actual":[0,0],"check":"zero and negative weights","expected":[4,3],"passed":false},{"actual":[0,0],"check":"equal keys tie","expected":[3,7],"passed":false},{"actual":[0],"check":"heavier weight wins","expected":[2],"passed":false},{"actual":[0,0],"check":"light weight small uniform","expected":[3,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"weighted sample 0 k=2\", \"actual\": [0, 0], \"expected\": [2, 7], \"passed\": false}, {\"check\": \"weighted sample 1 k=3\", \"actual\": [0, 0, 0], \"expected\": [7, 4, 0], \"passed\": false}, {\"check\": \"weighted sample 2 k=4\", \"actual\": [0, 0, 0, 0], \"expected\": [7, 6, 0, 1], \"passed\": false}, {\"check\": \"zero and negative weights\", \"actual\": [0, 0], \"expected\": [4, 3], \"passed\": false}, {\"check\": \"equal keys tie\", \"actual\": [0, 0], \"expected\": [3, 7], \"passed\": false}, {\"check\": \"heavier weight wins\", \"actual\": [0], \"expected\": [2], \"passed\": false}, {\"check\": \"light weight small uniform\", \"actual\": [0, 0], \"expected\": [3, 2], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.686,"exit_code":1,"observations":[{"actual":[-2,-7],"check":"weighted sample 0 k=2","expected":[2,7],"passed":false},{"actual":[-7,-4,0],"check":"weighted sample 1 k=3","expected":[7,4,0],"passed":false},{"actual":[-7,-6,0,-1],"check":"weighted sample 2 k=4","expected":[7,6,0,1],"passed":false},{"actual":[-4,-3],"check":"zero and negative weights","expected":[4,3],"passed":false},{"actual":[-7,-3],"check":"equal keys tie","expected":[3,7],"passed":false},{"actual":[-2],"check":"heavier weight wins","expected":[2],"passed":false},{"actual":[-3,-2],"check":"light weight small uniform","expected":[3,2],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"weighted sample 0 k=2\", \"actual\": [-2, -7], \"expected\": [2, 7], \"passed\": false}, {\"check\": \"weighted sample 1 k=3\", \"actual\": [-7, -4, 0], \"expected\": [7, 4, 0], \"passed\": false}, {\"check\": \"weighted sample 2 k=4\", \"actual\": [-7, -6, 0, -1], \"expected\": [7, 6, 0, 1], \"passed\": false}, {\"check\": \"zero and negative weights\", \"actual\": [-4, -3], \"expected\": [4, 3], \"passed\": false}, {\"check\": \"equal keys tie\", \"actual\": [-7, -3], \"expected\": [3, 7], \"passed\": false}, {\"check\": \"heavier weight wins\", \"actual\": [-2], \"expected\": [2], \"passed\": false}, {\"check\": \"light weight small uniform\", \"actual\": [-3, -2], \"expected\": [3, 2], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.611,"exit_code":0,"observations":[{"actual":[2,7],"check":"weighted sample 0 k=2","expected":[2,7],"passed":true},{"actual":[7,4,0],"check":"weighted sample 1 k=3","expected":[7,4,0],"passed":true},{"actual":[7,6,0,1],"check":"weighted sample 2 k=4","expected":[7,6,0,1],"passed":true},{"actual":[4,3],"check":"zero and negative weights","expected":[4,3],"passed":true},{"actual":[3,7],"check":"equal keys tie","expected":[3,7],"passed":true},{"actual":[2],"check":"heavier weight wins","expected":[2],"passed":true},{"actual":[3,2],"check":"light weight small uniform","expected":[3,2],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"weighted sample 0 k=2\", \"actual\": [2, 7], \"expected\": [2, 7], \"passed\": true}, {\"check\": \"weighted sample 1 k=3\", \"actual\": [7, 4, 0], \"expected\": [7, 4, 0], \"passed\": true}, {\"check\": \"weighted sample 2 k=4\", \"actual\": [7, 6, 0, 1], \"expected\": [7, 6, 0, 1], \"passed\": true}, {\"check\": \"zero and negative weights\", \"actual\": [4, 3], \"expected\": [4, 3], \"passed\": true}, {\"check\": \"equal keys tie\", \"actual\": [3, 7], \"expected\": [3, 7], \"passed\": true}, {\"check\": \"heavier weight wins\", \"actual\": [2], \"expected\": [2], \"passed\": true}, {\"check\": \"light weight small uniform\", \"actual\": [3, 2], \"expected\": [3, 2], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}