FAILURE MAP
← Case archive

FA-66291 / Aviation weight and balance / Open access

Combined exceedance reported against each member separately · case 01

A pair overload appears as two separate findings that look like individual position overloads.

Verified by executionVariant 1 · 9 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The group finding is split into one entry per member position.

VERIFIED REPAIR

Emit one finding per exceeded group naming all members.

Unsuccessful approach: Reporting only the first member hides which group was exceeded.

Case contract

Input {'limits':{position: max kg},'combined':[[[positions], max kg]],'loads':{position: kg}}. Positions are visited in sorted order: unknown -> 'UNKNOWN:p', above its own limit -> 'POS:p'. Then each combined group in given order whose summed load (absent positions count 0) exceeds its cap -> 'COMB:a+b'. Limits are inclusive.

Why this case matters

Unit load device positions have individual limits and shared limits for side-by-side or zonal groups that constrain their sum.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    lim = x['limits']
    loads = x['loads']
    out = []
    for pos in sorted(loads):
        if pos not in lim:
            out.append('UNKNOWN:' + pos)
        elif loads[pos] > lim[pos]:
            out.append('POS:' + pos)
    for members, cap in x['combined']:
        tot = sum(loads.get(p, 0) for p in members)
        if tot > cap:
            out.extend('COMB:' + p for p in members)
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1110, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1301}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1601, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2001, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1251}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 3000, '21P': 4600, '11L': 1500, '13L': 1000, '12L': 0, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 0, '12L': 1320, '13L': 380, '12R': 0, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'21P': 4600, '12R': 1500, '11R': 1500, '11L': 1500, '12L': 0}}, ['COMB:11L+11R']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1120, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1302}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1602, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2002, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1252}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11R': 610}}, []], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1500, '13L': 250, '11R': 0}}, ['UNKNOWN:13L']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 0}}, []]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1130, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1303}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1603, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2003, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1253}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1500}}, []], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 240, '11L': 0}}, []], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1760, '13L': 510}}, ['POS:11L', 'UNKNOWN:13L']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1140, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1304}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1604, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2004, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1254}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1000, '13L': 370}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1450, '11L': 1500}}, ['UNKNOWN:41']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11R': 0, '31': 3000, '12L': 0, '13L': 1000, '12R': 1500, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1150, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1305}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1605, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2005, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1255}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'13L': 1000, '21P': 0, '12L': 1500, '31': 1070, '12R': 0}}, ['UNKNOWN:13L']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'13L': 0, '12R': 1500, '21P': 4600}}, ['UNKNOWN:13L']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1000, '31': 360, '12R': 380, '21P': 4600, '11L': 280, '11R': 0}}, ['UNKNOWN:41']]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
legal split load[][]Passed
pair over combined['COMB:11L', 'COMB:11R']['COMB:11L+11R']Failed
position exactly at limit[][]Passed
single side overloaded['POS:12R']['POS:12R']Passed
unknown position['UNKNOWN:41']['UNKNOWN:41']Passed
block over only['COMB:11L', 'COMB:11R', 'COMB:12L', 'COMB:12R']['COMB:11L+11R+12L+12R']Failed
sampled case 1['UNKNOWN:13L', 'UNKNOWN:41']['UNKNOWN:13L', 'UNKNOWN:41']Passed
sampled case 2['UNKNOWN:13L', 'UNKNOWN:41']['UNKNOWN:13L', 'UNKNOWN:41']Passed
sampled case 3['COMB:11L', 'COMB:11R']['COMB:11L+11R']Failed

SHA-256 / d035e03e5f313f4e358e7ab8aa9c53ba2ac3418229c6625bd373565596d097df

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    lim = x['limits']
    loads = x['loads']
    out = []
    for pos in sorted(loads):
        if pos not in lim:
            out.append('UNKNOWN:' + pos)
        elif loads[pos] > lim[pos]:
            out.append('POS:' + pos)
    for members, cap in x['combined']:
        tot = sum(loads.get(p, 0) for p in members)
        if tot > cap:
            out.append('COMB:' + members[0])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1110, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1301}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1601, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2001, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1251}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 3000, '21P': 4600, '11L': 1500, '13L': 1000, '12L': 0, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 0, '12L': 1320, '13L': 380, '12R': 0, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'21P': 4600, '12R': 1500, '11R': 1500, '11L': 1500, '12L': 0}}, ['COMB:11L+11R']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1120, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1302}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1602, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2002, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1252}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11R': 610}}, []], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1500, '13L': 250, '11R': 0}}, ['UNKNOWN:13L']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 0}}, []]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1130, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1303}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1603, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2003, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1253}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1500}}, []], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 240, '11L': 0}}, []], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1760, '13L': 510}}, ['POS:11L', 'UNKNOWN:13L']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1140, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1304}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1604, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2004, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1254}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1000, '13L': 370}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1450, '11L': 1500}}, ['UNKNOWN:41']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11R': 0, '31': 3000, '12L': 0, '13L': 1000, '12R': 1500, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1150, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1305}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1605, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2005, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1255}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'13L': 1000, '21P': 0, '12L': 1500, '31': 1070, '12R': 0}}, ['UNKNOWN:13L']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'13L': 0, '12R': 1500, '21P': 4600}}, ['UNKNOWN:13L']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1000, '31': 360, '12R': 380, '21P': 4600, '11L': 280, '11R': 0}}, ['UNKNOWN:41']]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
legal split load[][]Passed
pair over combined['COMB:11L']['COMB:11L+11R']Failed
position exactly at limit[][]Passed
single side overloaded['POS:12R']['POS:12R']Passed
unknown position['UNKNOWN:41']['UNKNOWN:41']Passed
block over only['COMB:11L']['COMB:11L+11R+12L+12R']Failed
sampled case 1['UNKNOWN:13L', 'UNKNOWN:41']['UNKNOWN:13L', 'UNKNOWN:41']Passed
sampled case 2['UNKNOWN:13L', 'UNKNOWN:41']['UNKNOWN:13L', 'UNKNOWN:41']Passed
sampled case 3['COMB:11L']['COMB:11L+11R']Failed

SHA-256 / a1f7734f4378ef6577052786d0f854b8c06219f5ca453569f12626c5eaaed182

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(x):
    lim = x['limits']
    loads = x['loads']
    out = []
    for pos in sorted(loads):
        if pos not in lim:
            out.append('UNKNOWN:' + pos)
        elif loads[pos] > lim[pos]:
            out.append('POS:' + pos)
    for members, cap in x['combined']:
        tot = sum(loads.get(p, 0) for p in members)
        if tot > cap:
            out.append('COMB:' + '+'.join(members))
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1110, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1301}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1601, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2001, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1251}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 3000, '21P': 4600, '11L': 1500, '13L': 1000, '12L': 0, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 0, '12L': 1320, '13L': 380, '12R': 0, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'21P': 4600, '12R': 1500, '11R': 1500, '11L': 1500, '12L': 0}}, ['COMB:11L+11R']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1120, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1302}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1602, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2002, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1252}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11R': 610}}, []], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1500, '13L': 250, '11R': 0}}, ['UNKNOWN:13L']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 0}}, []]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1130, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1303}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1603, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2003, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1253}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1500}}, []], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 240, '11L': 0}}, []], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1760, '13L': 510}}, ['POS:11L', 'UNKNOWN:13L']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1140, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1304}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1604, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2004, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1254}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1000, '13L': 370}}, ['UNKNOWN:13L', 'UNKNOWN:41']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1450, '11L': 1500}}, ['UNKNOWN:41']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11R': 0, '31': 3000, '12L': 0, '13L': 1000, '12R': 1500, '41': 0}}, ['UNKNOWN:13L', 'UNKNOWN:41']]], [['legal split load', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1200, '11R': 1150, '21P': 4000}}, []], ['pair over combined', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'11L': 1400, '11R': 1305}}, ['COMB:11L+11R']], ['position exactly at limit', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12L': 1500, '12R': 1100, '31': 3000}}, []], ['single side overloaded', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'12R': 1605, '11L': 0}}, ['POS:12R']], ['unknown position', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 0, '31': 2005, '11R': 500}}, ['UNKNOWN:41']], ['block over only', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'31': 100, '11L': 1250, '11R': 1250, '12L': 1300, '12R': 1255}}, ['COMB:11L+11R+12L+12R']], ['sampled case 1', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'13L': 1000, '21P': 0, '12L': 1500, '31': 1070, '12R': 0}}, ['UNKNOWN:13L']], ['sampled case 2', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'13L': 0, '12R': 1500, '21P': 4600}}, ['UNKNOWN:13L']], ['sampled case 3', {'limits': {'11L': 1500, '11R': 1500, '12L': 1500, '12R': 1500, '21P': 4600, '31': 3000}, 'combined': [[['11L', '11R'], 2500], [['12L', '12R'], 2600], [['11L', '11R', '12L', '12R'], 5000]], 'loads': {'41': 1000, '31': 360, '12R': 380, '21P': 4600, '11L': 280, '11R': 0}}, ['UNKNOWN:41']]]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
legal split load[][]Passed
pair over combined['COMB:11L+11R']['COMB:11L+11R']Passed
position exactly at limit[][]Passed
single side overloaded['POS:12R']['POS:12R']Passed
unknown position['UNKNOWN:41']['UNKNOWN:41']Passed
block over only['COMB:11L+11R+12L+12R']['COMB:11L+11R+12L+12R']Passed
sampled case 1['UNKNOWN:13L', 'UNKNOWN:41']['UNKNOWN:13L', 'UNKNOWN:41']Passed
sampled case 2['UNKNOWN:13L', 'UNKNOWN:41']['UNKNOWN:13L', 'UNKNOWN:41']Passed
sampled case 3['COMB:11L+11R']['COMB:11L+11R']Passed

SHA-256 / 1d437bad3a6afd3a8fae5ebefe736d9c10549256dce1da4e3c3b4360599f1c3f

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:47:41.818110+00:00.

Case digest / 0d722d9de40f2c5b01cf7d7aa73d99efe71dfa02112e247c251b1324e136b257