FA-66296 / Aviation weight and balance / Open access
Position loaded exactly to its limit flagged · case 01
A container at exactly its position maximum is reported as an overload.
ROOT CAUSE
The individual position check treats the limit as exceeded when equal.
VERIFIED REPAIR
Flag only loads strictly above the position limit.
Unsuccessful approach: Comparing in hundreds of kilograms hides overloads under 100 kg.
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.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']], ['regression: position limit comparison', {'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': 1150, '11L': 1570, '31': 0, '21P': 860}}, ['POS:11L', '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': 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}}, []], ['regression: position limit comparison', {'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': 820, '12L': 1510}}, ['POS:12L']]], [['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']], ['regression: position limit comparison', {'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': 1540, '12L': 0, '41': 0, '11R': 1500, '13L': 0}}, ['POS:12R', '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': 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']], ['regression: position limit comparison', {'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': 720, '41': 0, '31': 1360, '11L': 1550, '11R': 1600, '21P': 4600}}, ['POS:11L', 'POS:11R', 'UNKNOWN:13L', 'UNKNOWN:41', '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': 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']], ['regression: position limit comparison', {'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, '41': 390, '21P': 1020, '31': 200, '11R': 1520}}, ['POS:11R', 'UNKNOWN:13L', '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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| legal split load | [] | [] | Passed |
| pair over combined | ['COMB:11L+11R'] | ['COMB:11L+11R'] | Passed |
| position exactly at limit | ['POS:12L', 'POS:31'] | [] | Failed |
| 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 | ['POS:11L', 'UNKNOWN:13L', 'POS:21P', 'POS:31', 'UNKNOWN:41'] | ['UNKNOWN:13L', 'UNKNOWN:41'] | Failed |
| sampled case 2 | ['UNKNOWN:13L', 'UNKNOWN:41'] | ['UNKNOWN:13L', 'UNKNOWN:41'] | Passed |
| sampled case 3 | ['POS:11L', 'POS:11R', 'POS:12R', 'POS:21P', 'COMB:11L+11R'] | ['COMB:11L+11R'] | Failed |
| regression: position limit comparison | ['POS:11L', 'UNKNOWN:41'] | ['POS:11L', 'UNKNOWN:41'] | Passed |
SHA-256 / c89f39cebb0a717bc89b4b6933a874bbdca05c0dacdfaf9ca583c64e9b150c8e
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] // 100 > lim[pos] // 100:
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']], ['regression: position limit comparison', {'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': 1150, '11L': 1570, '31': 0, '21P': 860}}, ['POS:11L', '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': 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}}, []], ['regression: position limit comparison', {'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': 820, '12L': 1510}}, ['POS:12L']]], [['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']], ['regression: position limit comparison', {'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': 1540, '12L': 0, '41': 0, '11R': 1500, '13L': 0}}, ['POS:12R', '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': 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']], ['regression: position limit comparison', {'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': 720, '41': 0, '31': 1360, '11L': 1550, '11R': 1600, '21P': 4600}}, ['POS:11L', 'POS:11R', 'UNKNOWN:13L', 'UNKNOWN:41', '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': 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']], ['regression: position limit comparison', {'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, '41': 390, '21P': 1020, '31': 200, '11R': 1520}}, ['POS:11R', 'UNKNOWN:13L', '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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 |
| regression: position limit comparison | ['UNKNOWN:41'] | ['POS:11L', 'UNKNOWN:41'] | Failed |
SHA-256 / 403923b87281ffc06cbca4ba401b8ccbd8101e88d8d71871ede6669de18978ac
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']], ['regression: position limit comparison', {'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': 1150, '11L': 1570, '31': 0, '21P': 860}}, ['POS:11L', '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': 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}}, []], ['regression: position limit comparison', {'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': 820, '12L': 1510}}, ['POS:12L']]], [['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']], ['regression: position limit comparison', {'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': 1540, '12L': 0, '41': 0, '11R': 1500, '13L': 0}}, ['POS:12R', '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': 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']], ['regression: position limit comparison', {'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': 720, '41': 0, '31': 1360, '11L': 1550, '11R': 1600, '21P': 4600}}, ['POS:11L', 'POS:11R', 'UNKNOWN:13L', 'UNKNOWN:41', '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': 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']], ['regression: position limit comparison', {'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, '41': 390, '21P': 1020, '31': 200, '11R': 1520}}, ['POS:11R', 'UNKNOWN:13L', '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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| 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 |
| regression: position limit comparison | ['POS:11L', 'UNKNOWN:41'] | ['POS:11L', 'UNKNOWN:41'] | Passed |
SHA-256 / 111635194a28b8daadba8f41e42203583fa9345cd15ad16dfab946514d6ea192
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.854839+00:00.
Case digest / 81193f04edf1230fe067276a7d5145f2597b7f24bea2de2b69e1103388c3181c