{"abstract":"A diesel price exactly on a band boundary gets the lower band percentage.","category":"Shipping rate zone lookup","checks":8,"contract":"prices [[week, diesel_cents]] published weekly (weeks may be missing). A ship week uses the latest price published at or before week - 2. bands [[lo, hi, basis_points]] are half-open [lo, hi). At or above the last band hi, add 25 bp for each started 5 cents at or above hi (the hi price itself adds one step). Below the table -> 0; no price -> None.","evaluation_group":"w2-shipping-zone-fuel-table","failed_approach":"Closing both ends makes the shared boundary match the lower band first.","family":"w2-shipping-zone-fuel-table-half-open-band","id":"FA-95771","implementations":{"attempt":{"sha256":"250c8a5ef9c81dbdae054fdc3b960f9bb14a4da042975ab452b5b38718706204","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(week, prices, bands):\n    target = week - 2\n    avail = [pc for pc in prices if pc[0] <= target]\n    if not avail:\n        return None\n    p = max(avail)[1]\n    for lo, hi, bp in bands:\n        if lo <= p <= hi:\n            return bp\n    top_hi, top_bp = bands[-1][1], bands[-1][2]\n    if p >= top_hi:\n        return top_bp + ((p - top_hi) // 5 + 1) * 25\n    return 0\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table at hi', [16, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 6', [19, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [18, 350]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['generated mix 14', [19, [[10, 345], [11, 350], [12, 402], [15, 299], [17, 512], [18, 504]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575]], [['generated mix 23', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [17, 512], [16, 530]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['generated mix 22', [13, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [13, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table at hi', [16, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['no price yet', [11, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None], ['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 8', [18, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512], [16, 530]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1675], ['generated mix 16', [12, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [18, 499]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200]], [['generated mix 56', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [17, 512], [18, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['generated mix 45', [13, [[10, 345], [11, 350], [14, 500], [15, 299], [16, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['generated mix 19', [14, [[12, 402], [14, 500], [15, 299], [18, 499]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 27', [18, [[10, 345], [12, 402], [14, 500], [15, 299], [17, 512], [18, 505]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0]], [['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['generated mix 61', [20, [[11, 350], [12, 402], [14, 500], [15, 299], [16, 500]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 31', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [18, 300]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 39', [13, [[12, 402], [14, 500], [17, 512], [16, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None]], [['generated mix 30', [14, [[10, 345], [11, 350], [14, 500], [17, 512], [18, 500]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['no price yet', [11, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None], ['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['generated mix 43', [14, [[10, 345], [12, 402], [14, 500], [15, 299], [13, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 51', [19, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [16, 299]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575]]]\nfor label, args, expected in fixtures[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":"6839ab7162801d5570911fb5eb2b0ff35a47942eb62ef7d74ab56652981ca493","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(week, prices, bands):\n    target = week - 2\n    avail = [pc for pc in prices if pc[0] <= target]\n    if not avail:\n        return None\n    p = max(avail)[1]\n    for lo, hi, bp in bands:\n        if lo < p <= hi:\n            return bp\n    top_hi, top_bp = bands[-1][1], bands[-1][2]\n    if p >= top_hi:\n        return top_bp + ((p - top_hi) // 5 + 1) * 25\n    return 0\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table at hi', [16, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 6', [19, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [18, 350]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['generated mix 14', [19, [[10, 345], [11, 350], [12, 402], [15, 299], [17, 512], [18, 504]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575]], [['generated mix 23', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [17, 512], [16, 530]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['generated mix 22', [13, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [13, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table at hi', [16, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['no price yet', [11, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None], ['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 8', [18, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512], [16, 530]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1675], ['generated mix 16', [12, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [18, 499]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200]], [['generated mix 56', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [17, 512], [18, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['generated mix 45', [13, [[10, 345], [11, 350], [14, 500], [15, 299], [16, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['generated mix 19', [14, [[12, 402], [14, 500], [15, 299], [18, 499]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 27', [18, [[10, 345], [12, 402], [14, 500], [15, 299], [17, 512], [18, 505]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0]], [['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['generated mix 61', [20, [[11, 350], [12, 402], [14, 500], [15, 299], [16, 500]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 31', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [18, 300]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 39', [13, [[12, 402], [14, 500], [17, 512], [16, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None]], [['generated mix 30', [14, [[10, 345], [11, 350], [14, 500], [17, 512], [18, 500]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['no price yet', [11, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None], ['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['generated mix 43', [14, [[10, 345], [12, 402], [14, 500], [15, 299], [13, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 51', [19, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [16, 299]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575]]]\nfor label, args, expected in fixtures[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":"e64a017d76b5abe9cd4e1a80eeb11ec6dcfbe5242727726c3db32629462c0e26","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(week, prices, bands):\n    target = week - 2\n    avail = [pc for pc in prices if pc[0] <= target]\n    if not avail:\n        return None\n    p = max(avail)[1]\n    for lo, hi, bp in bands:\n        if lo <= p < hi:\n            return bp\n    top_hi, top_bp = bands[-1][1], bands[-1][2]\n    if p >= top_hi:\n        return top_bp + ((p - top_hi) // 5 + 1) * 25\n    return 0\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table at hi', [16, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 6', [19, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [18, 350]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['generated mix 14', [19, [[10, 345], [11, 350], [12, 402], [15, 299], [17, 512], [18, 504]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575]], [['generated mix 23', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [17, 512], [16, 530]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['generated mix 22', [13, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [13, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table at hi', [16, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['no price yet', [11, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None], ['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 8', [18, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512], [16, 530]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1675], ['generated mix 16', [12, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [18, 499]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200]], [['generated mix 56', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [17, 512], [18, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['generated mix 45', [13, [[10, 345], [11, 350], [14, 500], [15, 299], [16, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['generated mix 19', [14, [[12, 402], [14, 500], [15, 299], [18, 499]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 27', [18, [[10, 345], [12, 402], [14, 500], [15, 299], [17, 512], [18, 505]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0]], [['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['generated mix 61', [20, [[11, 350], [12, 402], [14, 500], [15, 299], [16, 500]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1525], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['above table steps', [19, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575], ['band lower edge', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 31', [12, [[10, 345], [11, 350], [12, 402], [14, 500], [18, 300]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1200], ['generated mix 39', [13, [[12, 402], [14, 500], [17, 512], [16, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None]], [['generated mix 30', [14, [[10, 345], [11, 350], [14, 500], [17, 512], [18, 500]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['shared edge', [3, [[1, 450]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1500], ['no price yet', [11, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], None], ['two week lag', [13, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1300], ['missing week fallback', [15, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['below table', [17, [[10, 345], [11, 350], [12, 402], [14, 500], [15, 299], [17, 512]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 0], ['generated mix 43', [14, [[10, 345], [12, 402], [14, 500], [15, 299], [13, 349]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1400], ['generated mix 51', [19, [[10, 345], [11, 350], [14, 500], [15, 299], [17, 512], [16, 299]], [[300, 350, 1200], [350, 400, 1300], [400, 450, 1400], [450, 500, 1500]]], 1575]]]\nfor label, args, expected in fixtures[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":"Stipulated bands and step size. 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-shipping-zone-fuel-table-half-open-band","generated_at":"2026-09-29T14:52:16.773234+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Carriers index fuel surcharges to published diesel prices with a lag.","repair":"Bands include lo and exclude hi.","root_cause":"Band membership is (lo, hi] instead of [lo, hi).","sha256":"a7cbf90d31f5636ecb34e0febda6d6c0928a01fbb76cc8a8cf3745972936e078","title":"Fuel table: price on band edge in lower band · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.533,"exit_code":1,"observations":[{"actual":1200,"check":"two week lag","expected":1300,"passed":false},{"actual":1500,"check":"above table at hi","expected":1525,"passed":false},{"actual":1200,"check":"band lower edge","expected":1200,"passed":true},{"actual":0,"check":"below table","expected":0,"passed":true},{"actual":1575,"check":"above table steps","expected":1575,"passed":true},{"actual":1400,"check":"missing week fallback","expected":1400,"passed":true},{"actual":1575,"check":"generated mix 6","expected":1575,"passed":true},{"actual":1575,"check":"generated mix 14","expected":1575,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two week lag\", \"actual\": 1200, \"expected\": 1300, \"passed\": false}, {\"check\": \"above table at hi\", \"actual\": 1500, \"expected\": 1525, \"passed\": false}, {\"check\": \"band lower edge\", \"actual\": 1200, \"expected\": 1200, \"passed\": true}, {\"check\": \"below table\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"above table steps\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}, {\"check\": \"missing week fallback\", \"actual\": 1400, \"expected\": 1400, \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}, {\"check\": \"generated mix 14\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.623,"exit_code":1,"observations":[{"actual":1200,"check":"two week lag","expected":1300,"passed":false},{"actual":1500,"check":"above table at hi","expected":1525,"passed":false},{"actual":1200,"check":"band lower edge","expected":1200,"passed":true},{"actual":0,"check":"below table","expected":0,"passed":true},{"actual":1575,"check":"above table steps","expected":1575,"passed":true},{"actual":1400,"check":"missing week fallback","expected":1400,"passed":true},{"actual":1575,"check":"generated mix 6","expected":1575,"passed":true},{"actual":1575,"check":"generated mix 14","expected":1575,"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two week lag\", \"actual\": 1200, \"expected\": 1300, \"passed\": false}, {\"check\": \"above table at hi\", \"actual\": 1500, \"expected\": 1525, \"passed\": false}, {\"check\": \"band lower edge\", \"actual\": 1200, \"expected\": 1200, \"passed\": true}, {\"check\": \"below table\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"above table steps\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}, {\"check\": \"missing week fallback\", \"actual\": 1400, \"expected\": 1400, \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}, {\"check\": \"generated mix 14\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.509,"exit_code":0,"observations":[{"actual":1300,"check":"two week lag","expected":1300,"passed":true},{"actual":1525,"check":"above table at hi","expected":1525,"passed":true},{"actual":1200,"check":"band lower edge","expected":1200,"passed":true},{"actual":0,"check":"below table","expected":0,"passed":true},{"actual":1575,"check":"above table steps","expected":1575,"passed":true},{"actual":1400,"check":"missing week fallback","expected":1400,"passed":true},{"actual":1575,"check":"generated mix 6","expected":1575,"passed":true},{"actual":1575,"check":"generated mix 14","expected":1575,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two week lag\", \"actual\": 1300, \"expected\": 1300, \"passed\": true}, {\"check\": \"above table at hi\", \"actual\": 1525, \"expected\": 1525, \"passed\": true}, {\"check\": \"band lower edge\", \"actual\": 1200, \"expected\": 1200, \"passed\": true}, {\"check\": \"below table\", \"actual\": 0, \"expected\": 0, \"passed\": true}, {\"check\": \"above table steps\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}, {\"check\": \"missing week fallback\", \"actual\": 1400, \"expected\": 1400, \"passed\": true}, {\"check\": \"generated mix 6\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}, {\"check\": \"generated mix 14\", \"actual\": 1575, \"expected\": 1575, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}