{"abstract":"A late passenger that takes the aircraft over MTOW is accepted as an LMC.","category":"Aviation weight and balance","checks":10,"contract":"Input {'tow','mtow','index','index_limits','max_lmc_weight','max_lmc_index','changes':[['add'|'remove', kg, index effect of adding]]}. The weight tolerance applies to the gross sum of all changed weights (<= limit allowed); removals negate weight and index; |net index| <= limit. Then new TOW <= MTOW and new index within inclusive limits, else 'NEW_LOADSHEET'. Return ['LMC', new TOW, new index r1].","evaluation_group":"w2-aviation-weight-balance-last-minute-change","failed_approach":"Skipping the check for net removals accepts an aircraft that is still above MTOW after a small offload.","family":"w2-aviation-weight-balance-last-minute-change-lmc-mtow-stale","id":"FA-66206","implementations":{"attempt":{"sha256":"0c1040c0783c85cd3c0ea16704ecbfb14969b0e2687116469085875aaa2462cf","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    gross = 0\n    dw = 0\n    di = 0.0\n    for kind, wt, idx in x['changes']:\n        s = 1 if kind == 'add' else -1\n        gross += wt\n        dw += s * wt\n        di += s * idx\n    if gross > x['max_lmc_weight'] or abs(di) > x['max_lmc_index']: return 'NEW_LOADSHEET'\n    tow = x['tow'] + dw\n    ti = x['index'] + di\n    lo, hi = x['index_limits']\n    if tow > x['mtow'] and dw > 0 or ti < lo or ti > hi: return 'NEW_LOADSHEET'\n    return ['LMC', tow, round(ti, 1)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 171, 1.5], ['add', 85, 0.8]]}, ['LMC', 68256, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 291, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.1]]}, ['LMC', 67800, 48.9]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 151, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.1]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 0.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 64100, 'mtow': 70000, 'index': 45.9, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 180, 3.4], ['remove', 155, -2.5], ['add', 35, -3.5], ['add', 345, 3.7]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 68550, 'mtow': 70000, 'index': 33.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 340, -1.0], ['remove', 260, 1.2]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 61300, 'mtow': 70000, 'index': 42.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 350, -3.5], ['remove', 30, -2.6], ['add', 230, 1.5]]}, 'NEW_LOADSHEET']], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 172, 1.5], ['add', 85, 0.8]]}, ['LMC', 68257, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 292, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.2]]}, ['LMC', 67800, 48.8]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 152, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.2]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 1.0]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 68750, 'mtow': 70000, 'index': 62.6, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['add', 275, -2.1], ['add', 25, -1.8]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 64950, 'mtow': 70000, 'index': 44.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 3.0, 'changes': [['add', 385, 2.3]]}, ['LMC', 65335, 46.8]], ['sampled case 3', {'tow': 65950, 'mtow': 70000, 'index': 59.8, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 170, 1.7]]}, ['LMC', 65780, 58.1]]], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 173, 1.5], ['add', 85, 0.8]]}, ['LMC', 68258, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 293, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.3]]}, ['LMC', 67800, 48.7]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 153, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.3]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 1.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 64750, 'mtow': 70000, 'index': 33.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 20, 2.4], ['remove', 125, -3.9], ['remove', 190, 3.9], ['remove', 270, 3.3]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 63200, 'mtow': 70000, 'index': 47.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 5.0, 'changes': [['remove', 335, -0.9], ['add', 105, 3.3]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 66200, 'mtow': 70000, 'index': 38.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 150, -0.8], ['add', 95, 1.5], ['add', 140, -2.4], ['add', 150, -0.8]]}, 'NEW_LOADSHEET']], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 174, 1.5], ['add', 85, 0.8]]}, ['LMC', 68259, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 294, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.4]]}, ['LMC', 67800, 48.6]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 154, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.4]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 2.0]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 66150, 'mtow': 70000, 'index': 46.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 390, 0.4], ['remove', 40, 2.1], ['add', 300, 3.5]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 64000, 'mtow': 70000, 'index': 30.4, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 350, 3.5], ['remove', 60, 0.9]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 60650, 'mtow': 70000, 'index': 63.7, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 295, -2.6]]}, ['LMC', 60945, 61.1]]], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 175, 1.5], ['add', 85, 0.8]]}, ['LMC', 68260, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 295, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.5]]}, ['LMC', 67800, 48.5]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 155, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.5]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 2.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 69850, 'mtow': 70000, 'index': 46.3, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 5.0, 'changes': [['add', 195, -0.8], ['add', 240, -1.5]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 69600, 'mtow': 70000, 'index': 31.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 3.0, 'changes': [['add', 180, 3.5], ['remove', 165, 3.5]]}, ['LMC', 69615, 31.5]], ['sampled case 3', {'tow': 61550, 'mtow': 70000, 'index': 46.4, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 5.0, 'changes': [['remove', 340, 1.9], ['remove', 260, -0.5]]}, ['LMC', 60950, 45.0]]]]\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":"5c01dba251605d3540c2bf847e442e230605bcfce4999f0d5ef7d0cab9586f4a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    gross = 0\n    dw = 0\n    di = 0.0\n    for kind, wt, idx in x['changes']:\n        s = 1 if kind == 'add' else -1\n        gross += wt\n        dw += s * wt\n        di += s * idx\n    if gross > x['max_lmc_weight'] or abs(di) > x['max_lmc_index']: return 'NEW_LOADSHEET'\n    tow = x['tow'] + dw\n    ti = x['index'] + di\n    lo, hi = x['index_limits']\n    if x['tow'] > x['mtow'] or ti < lo or ti > hi: return 'NEW_LOADSHEET'\n    return ['LMC', tow, round(ti, 1)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 171, 1.5], ['add', 85, 0.8]]}, ['LMC', 68256, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 291, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.1]]}, ['LMC', 67800, 48.9]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 151, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.1]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 0.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 64100, 'mtow': 70000, 'index': 45.9, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 180, 3.4], ['remove', 155, -2.5], ['add', 35, -3.5], ['add', 345, 3.7]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 68550, 'mtow': 70000, 'index': 33.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 340, -1.0], ['remove', 260, 1.2]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 61300, 'mtow': 70000, 'index': 42.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 350, -3.5], ['remove', 30, -2.6], ['add', 230, 1.5]]}, 'NEW_LOADSHEET']], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 172, 1.5], ['add', 85, 0.8]]}, ['LMC', 68257, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 292, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.2]]}, ['LMC', 67800, 48.8]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 152, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.2]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 1.0]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 68750, 'mtow': 70000, 'index': 62.6, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['add', 275, -2.1], ['add', 25, -1.8]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 64950, 'mtow': 70000, 'index': 44.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 3.0, 'changes': [['add', 385, 2.3]]}, ['LMC', 65335, 46.8]], ['sampled case 3', {'tow': 65950, 'mtow': 70000, 'index': 59.8, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 170, 1.7]]}, ['LMC', 65780, 58.1]]], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 173, 1.5], ['add', 85, 0.8]]}, ['LMC', 68258, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 293, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.3]]}, ['LMC', 67800, 48.7]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 153, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.3]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 1.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 64750, 'mtow': 70000, 'index': 33.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 20, 2.4], ['remove', 125, -3.9], ['remove', 190, 3.9], ['remove', 270, 3.3]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 63200, 'mtow': 70000, 'index': 47.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 5.0, 'changes': [['remove', 335, -0.9], ['add', 105, 3.3]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 66200, 'mtow': 70000, 'index': 38.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 150, -0.8], ['add', 95, 1.5], ['add', 140, -2.4], ['add', 150, -0.8]]}, 'NEW_LOADSHEET']], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 174, 1.5], ['add', 85, 0.8]]}, ['LMC', 68259, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 294, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.4]]}, ['LMC', 67800, 48.6]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 154, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.4]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 2.0]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 66150, 'mtow': 70000, 'index': 46.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 390, 0.4], ['remove', 40, 2.1], ['add', 300, 3.5]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 64000, 'mtow': 70000, 'index': 30.4, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 350, 3.5], ['remove', 60, 0.9]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 60650, 'mtow': 70000, 'index': 63.7, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 295, -2.6]]}, ['LMC', 60945, 61.1]]], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 175, 1.5], ['add', 85, 0.8]]}, ['LMC', 68260, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 295, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.5]]}, ['LMC', 67800, 48.5]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 155, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.5]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 2.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 69850, 'mtow': 70000, 'index': 46.3, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 5.0, 'changes': [['add', 195, -0.8], ['add', 240, -1.5]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 69600, 'mtow': 70000, 'index': 31.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 3.0, 'changes': [['add', 180, 3.5], ['remove', 165, 3.5]]}, ['LMC', 69615, 31.5]], ['sampled case 3', {'tow': 61550, 'mtow': 70000, 'index': 46.4, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 5.0, 'changes': [['remove', 340, 1.9], ['remove', 260, -0.5]]}, ['LMC', 60950, 45.0]]]]\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":"b12bb44aa01412285acbd72732350600fb95cff9a384d4e4e73ed2c1785f5622","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    gross = 0\n    dw = 0\n    di = 0.0\n    for kind, wt, idx in x['changes']:\n        s = 1 if kind == 'add' else -1\n        gross += wt\n        dw += s * wt\n        di += s * idx\n    if gross > x['max_lmc_weight'] or abs(di) > x['max_lmc_index']: return 'NEW_LOADSHEET'\n    tow = x['tow'] + dw\n    ti = x['index'] + di\n    lo, hi = x['index_limits']\n    if tow > x['mtow'] or ti < lo or ti > hi: return 'NEW_LOADSHEET'\n    return ['LMC', tow, round(ti, 1)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 171, 1.5], ['add', 85, 0.8]]}, ['LMC', 68256, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 291, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.1]]}, ['LMC', 67800, 48.9]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 151, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.1]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 0.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 64100, 'mtow': 70000, 'index': 45.9, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 180, 3.4], ['remove', 155, -2.5], ['add', 35, -3.5], ['add', 345, 3.7]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 68550, 'mtow': 70000, 'index': 33.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 340, -1.0], ['remove', 260, 1.2]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 61300, 'mtow': 70000, 'index': 42.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 350, -3.5], ['remove', 30, -2.6], ['add', 230, 1.5]]}, 'NEW_LOADSHEET']], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 172, 1.5], ['add', 85, 0.8]]}, ['LMC', 68257, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 292, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.2]]}, ['LMC', 67800, 48.8]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 152, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.2]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 1.0]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 68750, 'mtow': 70000, 'index': 62.6, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['add', 275, -2.1], ['add', 25, -1.8]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 64950, 'mtow': 70000, 'index': 44.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 3.0, 'changes': [['add', 385, 2.3]]}, ['LMC', 65335, 46.8]], ['sampled case 3', {'tow': 65950, 'mtow': 70000, 'index': 59.8, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 170, 1.7]]}, ['LMC', 65780, 58.1]]], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 173, 1.5], ['add', 85, 0.8]]}, ['LMC', 68258, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 293, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.3]]}, ['LMC', 67800, 48.7]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 153, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.3]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 1.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 64750, 'mtow': 70000, 'index': 33.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 20, 2.4], ['remove', 125, -3.9], ['remove', 190, 3.9], ['remove', 270, 3.3]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 63200, 'mtow': 70000, 'index': 47.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 5.0, 'changes': [['remove', 335, -0.9], ['add', 105, 3.3]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 66200, 'mtow': 70000, 'index': 38.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 150, -0.8], ['add', 95, 1.5], ['add', 140, -2.4], ['add', 150, -0.8]]}, 'NEW_LOADSHEET']], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 174, 1.5], ['add', 85, 0.8]]}, ['LMC', 68259, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 294, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.4]]}, ['LMC', 67800, 48.6]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 154, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.4]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 2.0]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 66150, 'mtow': 70000, 'index': 46.1, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 400, 'max_lmc_index': 3.0, 'changes': [['add', 390, 0.4], ['remove', 40, 2.1], ['add', 300, 3.5]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 64000, 'mtow': 70000, 'index': 30.4, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 3.0, 'changes': [['remove', 350, 3.5], ['remove', 60, 0.9]]}, 'NEW_LOADSHEET'], ['sampled case 3', {'tow': 60650, 'mtow': 70000, 'index': 63.7, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 295, -2.6]]}, ['LMC', 60945, 61.1]]], [['two late passengers', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 175, 1.5], ['add', 85, 0.8]]}, ['LMC', 68260, 54.3]], ['swap cancels net', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 300, 2.0], ['remove', 295, 1.9]]}, 'NEW_LOADSHEET'], ['exactly at weight tolerance', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 250, 1.0], ['add', 250, 1.0]]}, ['LMC', 68500, 54.0]], ['offload moves index', {'tow': 68000, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 200, 3.5]]}, ['LMC', 67800, 48.5]], ['change pushes over MTOW', {'tow': 69900, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 155, 0.5]]}, 'NEW_LOADSHEET'], ['change pushes index out', {'tow': 68000, 'mtow': 70000, 'index': 68.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['add', 100, 2.5]]}, 'NEW_LOADSHEET'], ['already heavy then offload', {'tow': 70200, 'mtow': 70000, 'index': 52.0, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 500, 'max_lmc_index': 5.0, 'changes': [['remove', 150, 2.5]]}, 'NEW_LOADSHEET'], ['sampled case 1', {'tow': 69850, 'mtow': 70000, 'index': 46.3, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 5.0, 'changes': [['add', 195, -0.8], ['add', 240, -1.5]]}, 'NEW_LOADSHEET'], ['sampled case 2', {'tow': 69600, 'mtow': 70000, 'index': 31.5, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 3.0, 'changes': [['add', 180, 3.5], ['remove', 165, 3.5]]}, ['LMC', 69615, 31.5]], ['sampled case 3', {'tow': 61550, 'mtow': 70000, 'index': 46.4, 'index_limits': [30.0, 70.0], 'max_lmc_weight': 600, 'max_lmc_index': 5.0, 'changes': [['remove', 340, 1.9], ['remove', 260, -0.5]]}, ['LMC', 60950, 45.0]]]]\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":"A deterministic toy loading model with stipulated constants; it is not an approved aircraft flight manual procedure and makes no claim of regulatory conformance. 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-aviation-weight-balance-last-minute-change-lmc-mtow-stale","generated_at":"2026-09-29T14:47:41.079927+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Last-minute changes may be annotated on an issued loadsheet only within weight and index tolerances; offsetting changes must not hide large movements.","repair":"Compare the post-change takeoff weight against MTOW.","root_cause":"The MTOW check reads the original takeoff weight rather than the adjusted one.","sha256":"a0af761b003820543453259edc7198ea16386cf6afbf0e5aec7b1b3cedc89b1a","title":"MTOW compared against the pre-change weight · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.208,"exit_code":1,"observations":[{"actual":["LMC",68256,54.3],"check":"two late passengers","expected":["LMC",68256,54.3],"passed":true},{"actual":"NEW_LOADSHEET","check":"swap cancels net","expected":"NEW_LOADSHEET","passed":true},{"actual":["LMC",68500,54.0],"check":"exactly at weight tolerance","expected":["LMC",68500,54.0],"passed":true},{"actual":["LMC",67800,48.9],"check":"offload moves index","expected":["LMC",67800,48.9],"passed":true},{"actual":"NEW_LOADSHEET","check":"change pushes over MTOW","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"change pushes index out","expected":"NEW_LOADSHEET","passed":true},{"actual":["LMC",70050,51.5],"check":"already heavy then offload","expected":"NEW_LOADSHEET","passed":false},{"actual":"NEW_LOADSHEET","check":"sampled case 1","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 2","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 3","expected":"NEW_LOADSHEET","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two late passengers\", \"actual\": [\"LMC\", 68256, 54.3], \"expected\": [\"LMC\", 68256, 54.3], \"passed\": true}, {\"check\": \"swap cancels net\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"exactly at weight tolerance\", \"actual\": [\"LMC\", 68500, 54.0], \"expected\": [\"LMC\", 68500, 54.0], \"passed\": true}, {\"check\": \"offload moves index\", \"actual\": [\"LMC\", 67800, 48.9], \"expected\": [\"LMC\", 67800, 48.9], \"passed\": true}, {\"check\": \"change pushes over MTOW\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"change pushes index out\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"already heavy then offload\", \"actual\": [\"LMC\", 70050, 51.5], \"expected\": \"NEW_LOADSHEET\", \"passed\": false}, {\"check\": \"sampled case 1\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":42.0,"exit_code":1,"observations":[{"actual":["LMC",68256,54.3],"check":"two late passengers","expected":["LMC",68256,54.3],"passed":true},{"actual":"NEW_LOADSHEET","check":"swap cancels net","expected":"NEW_LOADSHEET","passed":true},{"actual":["LMC",68500,54.0],"check":"exactly at weight tolerance","expected":["LMC",68500,54.0],"passed":true},{"actual":["LMC",67800,48.9],"check":"offload moves index","expected":["LMC",67800,48.9],"passed":true},{"actual":["LMC",70051,52.5],"check":"change pushes over MTOW","expected":"NEW_LOADSHEET","passed":false},{"actual":"NEW_LOADSHEET","check":"change pushes index out","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"already heavy then offload","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 1","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 2","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 3","expected":"NEW_LOADSHEET","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two late passengers\", \"actual\": [\"LMC\", 68256, 54.3], \"expected\": [\"LMC\", 68256, 54.3], \"passed\": true}, {\"check\": \"swap cancels net\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"exactly at weight tolerance\", \"actual\": [\"LMC\", 68500, 54.0], \"expected\": [\"LMC\", 68500, 54.0], \"passed\": true}, {\"check\": \"offload moves index\", \"actual\": [\"LMC\", 67800, 48.9], \"expected\": [\"LMC\", 67800, 48.9], \"passed\": true}, {\"check\": \"change pushes over MTOW\", \"actual\": [\"LMC\", 70051, 52.5], \"expected\": \"NEW_LOADSHEET\", \"passed\": false}, {\"check\": \"change pushes index out\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"already heavy then offload\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":42.208,"exit_code":0,"observations":[{"actual":["LMC",68256,54.3],"check":"two late passengers","expected":["LMC",68256,54.3],"passed":true},{"actual":"NEW_LOADSHEET","check":"swap cancels net","expected":"NEW_LOADSHEET","passed":true},{"actual":["LMC",68500,54.0],"check":"exactly at weight tolerance","expected":["LMC",68500,54.0],"passed":true},{"actual":["LMC",67800,48.9],"check":"offload moves index","expected":["LMC",67800,48.9],"passed":true},{"actual":"NEW_LOADSHEET","check":"change pushes over MTOW","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"change pushes index out","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"already heavy then offload","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 1","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 2","expected":"NEW_LOADSHEET","passed":true},{"actual":"NEW_LOADSHEET","check":"sampled case 3","expected":"NEW_LOADSHEET","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"two late passengers\", \"actual\": [\"LMC\", 68256, 54.3], \"expected\": [\"LMC\", 68256, 54.3], \"passed\": true}, {\"check\": \"swap cancels net\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"exactly at weight tolerance\", \"actual\": [\"LMC\", 68500, 54.0], \"expected\": [\"LMC\", 68500, 54.0], \"passed\": true}, {\"check\": \"offload moves index\", \"actual\": [\"LMC\", 67800, 48.9], \"expected\": [\"LMC\", 67800, 48.9], \"passed\": true}, {\"check\": \"change pushes over MTOW\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"change pushes index out\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"already heavy then offload\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": \"NEW_LOADSHEET\", \"expected\": \"NEW_LOADSHEET\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}