FA-66306 / Aviation weight and balance / Open access
Position findings follow manifest entry order · case 01
Two runs over the same load in different manifest order produce differently ordered findings.
ROOT CAUSE
Positions are iterated in dictionary insertion order instead of sorted order.
VERIFIED REPAIR
Visit positions in sorted order.
Unsuccessful approach: Reverse sorting is deterministic but not the contract order.
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 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: finding order', {'limits': {'11L': 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': 1560, '11R': 1060, '12L': 1510}}, ['POS:12L', '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: finding order', {'limits': {'11L': 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': 660, '41': 0, '13L': 270}}, ['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': 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: finding order', {'limits': {'11L': 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': 440, '21P': 4600, '12L': 870, '13L': 1000, '11L': 770}}, ['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']]], [['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: finding order', {'limits': {'11L': 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': 1540, '21P': 4600, '11R': 1620, '12R': 310}}, ['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: finding order | ['UNKNOWN:41', 'POS:12L'] | ['POS:12L', 'UNKNOWN:41'] | Failed |
SHA-256 / a88201d5dadcb6365d949dd754b0d01f7eece1e707010c4d3e0da213c5ed5567
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, reverse=True):
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: finding order', {'limits': {'11L': 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': 1560, '11R': 1060, '12L': 1510}}, ['POS:12L', '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: finding order', {'limits': {'11L': 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': 660, '41': 0, '13L': 270}}, ['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': 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: finding order', {'limits': {'11L': 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': 440, '21P': 4600, '12L': 870, '13L': 1000, '11L': 770}}, ['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']]], [['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: finding order', {'limits': {'11L': 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': 1540, '21P': 4600, '11R': 1620, '12R': 310}}, ['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:41', 'UNKNOWN:13L'] | ['UNKNOWN:13L', 'UNKNOWN:41'] | Failed |
| sampled case 2 | ['UNKNOWN:41', 'UNKNOWN:13L'] | ['UNKNOWN:13L', 'UNKNOWN:41'] | Failed |
| sampled case 3 | ['COMB:11L+11R'] | ['COMB:11L+11R'] | Passed |
| regression: finding order | ['UNKNOWN:41', 'POS:12L'] | ['POS:12L', 'UNKNOWN:41'] | Failed |
SHA-256 / 6695e6353e71c9c630cd536a0db8a770bd0d5c3a599db1f5cbdc675f1fc28457
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: finding order', {'limits': {'11L': 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': 1560, '11R': 1060, '12L': 1510}}, ['POS:12L', '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: finding order', {'limits': {'11L': 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': 660, '41': 0, '13L': 270}}, ['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': 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: finding order', {'limits': {'11L': 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': 440, '21P': 4600, '12L': 870, '13L': 1000, '11L': 770}}, ['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']]], [['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: finding order', {'limits': {'11L': 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': 1540, '21P': 4600, '11R': 1620, '12R': 310}}, ['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: finding order | ['POS:12L', 'UNKNOWN:41'] | ['POS:12L', 'UNKNOWN:41'] | Passed |
SHA-256 / 91f746e830514af4e1098f46f4b7e12863bace7d0f800dedb5ecc9418c594151
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.981686+00:00.
Case digest / 33466e5d7bf0f1438e4c5733bcbae609d3462fb9b04eed1ee8301e1c447c66ea