FA-95181 / Warehouse slotting and bin packing / Open access
Rack audit: beam load keeps last pallet only · case 01
Two pallets on one beam pair that together exceed the rating pass the audit.
ROOT CAUSE
The beam total is overwritten by each pallet instead of accumulated.
VERIFIED REPAIR
Sum all pallet weights on the same bay and level.
Unsuccessful approach: Keeping the heaviest pallet still ignores the second pallet on the beam.
Case contract
loads [[bay, level, kg]]; level 0 is floor storage and loads neither beams nor uprights. Sum kg per (bay, level) and per bay. Beam capacity is beam_cap, derated to floor(90%) for levels 5 and up. Report ["BEAM", bay, level, total] when a level exceeds capacity and ["BAY", bay, 0, total] when a bay exceeds bay_cap, sorted.
Why this case matters
Rack load audits prevent beam and upright overloads in pallet racking.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(loads, beam_cap, bay_cap):
beam = {}
bay = {}
for b, lvl, kg in loads:
if lvl == 0:
continue
beam[(b, lvl)] = kg
bay[b] = bay.get(b, 0) + kg
out = []
for (b, lvl), t in beam.items():
cap = beam_cap * 9 // 10 if lvl >= 5 else beam_cap
if t > cap:
out.append(['BEAM', b, lvl, t])
for b, t in bay.items():
if t > bay_cap:
out.append(['BAY', b, 0, t])
out.sort()
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 5', [[[1, 6, 300], [1, 2, 500], [3, 5, 1000], [3, 5, 1000], [2, 0, 300], [1, 1, 500], [3, 5, 1000]], 1500, 4000], [['BEAM', 3, 5, 3000]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['generated mix 17', [[[2, 6, 500], [2, 0, 1000], [1, 0, 300], [1, 1, 300]], 1000, 3000], []], ['generated mix 25', [[[2, 4, 300], [1, 2, 1000], [2, 2, 1000], [2, 0, 900], [2, 0, 500], [1, 6, 450], [3, 6, 300]], 1000, 4000], []]], [['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 61', [[[2, 4, 300], [1, 0, 1000], [2, 4, 450], [2, 4, 450], [1, 4, 900], [2, 6, 900], [3, 4, 450]], 1000, 4000], [['BEAM', 2, 4, 1200]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 22', [[[3, 5, 1000], [1, 6, 1000], [2, 5, 450], [2, 0, 300]], 1500, 3000], []], ['generated mix 30', [[[3, 6, 900], [2, 6, 1000], [2, 5, 450], [3, 0, 500], [1, 5, 900], [2, 6, 500], [3, 1, 450]], 1500, 2000], [['BEAM', 2, 6, 1500]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 8', [[[1, 1, 300], [3, 5, 300], [3, 5, 300], [2, 4, 900], [2, 4, 1000], [1, 6, 1000]], 1000, 2000], [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 32', [[[1, 2, 500], [3, 6, 900], [2, 2, 300], [1, 6, 900], [1, 0, 900], [1, 5, 900], [2, 6, 450]], 1500, 4000], []], ['generated mix 41', [[[1, 4, 1000]], 1000, 4000], []], ['generated mix 49', [[[2, 4, 450], [1, 4, 500]], 1000, 4000], []]], [['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 45', [[[3, 6, 300], [2, 6, 300], [1, 4, 500], [3, 1, 900], [1, 0, 300], [1, 1, 450]], 1000, 3000], []], ['generated mix 53', [[[3, 4, 300], [3, 5, 900]], 1500, 4000], []]]]
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 |
|---|---|---|---|
| beam over | [] | [['BEAM', 1, 1, 1100]] | Failed |
| generated mix 5 | [] | [['BEAM', 3, 5, 3000]] | Failed |
| beam equal ok | [] | [] | Passed |
| level 4 full rating | [] | [] | Passed |
| bay over | [['BAY', 3, 0, 2700]] | [['BAY', 3, 0, 2700]] | Passed |
| derated level 5 | [['BEAM', 1, 5, 950]] | [['BEAM', 1, 5, 950]] | Passed |
| floor ignored | [] | [] | Passed |
| generated mix 9 | [['BAY', 2, 0, 2450]] | [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]] | Failed |
SHA-256 / b308e525b79bb13152719b9674329cb16dfc331abfb6540f5eb1b0aefbe61cfb
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(loads, beam_cap, bay_cap):
beam = {}
bay = {}
for b, lvl, kg in loads:
if lvl == 0:
continue
beam[(b, lvl)] = max(beam.get((b, lvl), 0), kg)
bay[b] = bay.get(b, 0) + kg
out = []
for (b, lvl), t in beam.items():
cap = beam_cap * 9 // 10 if lvl >= 5 else beam_cap
if t > cap:
out.append(['BEAM', b, lvl, t])
for b, t in bay.items():
if t > bay_cap:
out.append(['BAY', b, 0, t])
out.sort()
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 5', [[[1, 6, 300], [1, 2, 500], [3, 5, 1000], [3, 5, 1000], [2, 0, 300], [1, 1, 500], [3, 5, 1000]], 1500, 4000], [['BEAM', 3, 5, 3000]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['generated mix 17', [[[2, 6, 500], [2, 0, 1000], [1, 0, 300], [1, 1, 300]], 1000, 3000], []], ['generated mix 25', [[[2, 4, 300], [1, 2, 1000], [2, 2, 1000], [2, 0, 900], [2, 0, 500], [1, 6, 450], [3, 6, 300]], 1000, 4000], []]], [['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 61', [[[2, 4, 300], [1, 0, 1000], [2, 4, 450], [2, 4, 450], [1, 4, 900], [2, 6, 900], [3, 4, 450]], 1000, 4000], [['BEAM', 2, 4, 1200]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 22', [[[3, 5, 1000], [1, 6, 1000], [2, 5, 450], [2, 0, 300]], 1500, 3000], []], ['generated mix 30', [[[3, 6, 900], [2, 6, 1000], [2, 5, 450], [3, 0, 500], [1, 5, 900], [2, 6, 500], [3, 1, 450]], 1500, 2000], [['BEAM', 2, 6, 1500]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 8', [[[1, 1, 300], [3, 5, 300], [3, 5, 300], [2, 4, 900], [2, 4, 1000], [1, 6, 1000]], 1000, 2000], [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 32', [[[1, 2, 500], [3, 6, 900], [2, 2, 300], [1, 6, 900], [1, 0, 900], [1, 5, 900], [2, 6, 450]], 1500, 4000], []], ['generated mix 41', [[[1, 4, 1000]], 1000, 4000], []], ['generated mix 49', [[[2, 4, 450], [1, 4, 500]], 1000, 4000], []]], [['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 45', [[[3, 6, 300], [2, 6, 300], [1, 4, 500], [3, 1, 900], [1, 0, 300], [1, 1, 450]], 1000, 3000], []], ['generated mix 53', [[[3, 4, 300], [3, 5, 900]], 1500, 4000], []]]]
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 |
|---|---|---|---|
| beam over | [] | [['BEAM', 1, 1, 1100]] | Failed |
| generated mix 5 | [] | [['BEAM', 3, 5, 3000]] | Failed |
| beam equal ok | [] | [] | Passed |
| level 4 full rating | [] | [] | Passed |
| bay over | [['BAY', 3, 0, 2700]] | [['BAY', 3, 0, 2700]] | Passed |
| derated level 5 | [['BEAM', 1, 5, 950]] | [['BEAM', 1, 5, 950]] | Passed |
| floor ignored | [] | [] | Passed |
| generated mix 9 | [['BAY', 2, 0, 2450]] | [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]] | Failed |
SHA-256 / f2721c5b9c84b4780a758467ab891e516ab938c852f4da51e30651fcc5232221
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(loads, beam_cap, bay_cap):
beam = {}
bay = {}
for b, lvl, kg in loads:
if lvl == 0:
continue
beam[(b, lvl)] = beam.get((b, lvl), 0) + kg
bay[b] = bay.get(b, 0) + kg
out = []
for (b, lvl), t in beam.items():
cap = beam_cap * 9 // 10 if lvl >= 5 else beam_cap
if t > cap:
out.append(['BEAM', b, lvl, t])
for b, t in bay.items():
if t > bay_cap:
out.append(['BAY', b, 0, t])
out.sort()
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 5', [[[1, 6, 300], [1, 2, 500], [3, 5, 1000], [3, 5, 1000], [2, 0, 300], [1, 1, 500], [3, 5, 1000]], 1500, 4000], [['BEAM', 3, 5, 3000]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['generated mix 17', [[[2, 6, 500], [2, 0, 1000], [1, 0, 300], [1, 1, 300]], 1000, 3000], []], ['generated mix 25', [[[2, 4, 300], [1, 2, 1000], [2, 2, 1000], [2, 0, 900], [2, 0, 500], [1, 6, 450], [3, 6, 300]], 1000, 4000], []]], [['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 61', [[[2, 4, 300], [1, 0, 1000], [2, 4, 450], [2, 4, 450], [1, 4, 900], [2, 6, 900], [3, 4, 450]], 1000, 4000], [['BEAM', 2, 4, 1200]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 22', [[[3, 5, 1000], [1, 6, 1000], [2, 5, 450], [2, 0, 300]], 1500, 3000], []], ['generated mix 30', [[[3, 6, 900], [2, 6, 1000], [2, 5, 450], [3, 0, 500], [1, 5, 900], [2, 6, 500], [3, 1, 450]], 1500, 2000], [['BEAM', 2, 6, 1500]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 8', [[[1, 1, 300], [3, 5, 300], [3, 5, 300], [2, 4, 900], [2, 4, 1000], [1, 6, 1000]], 1000, 2000], [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 32', [[[1, 2, 500], [3, 6, 900], [2, 2, 300], [1, 6, 900], [1, 0, 900], [1, 5, 900], [2, 6, 450]], 1500, 4000], []], ['generated mix 41', [[[1, 4, 1000]], 1000, 4000], []], ['generated mix 49', [[[2, 4, 450], [1, 4, 500]], 1000, 4000], []]], [['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 45', [[[3, 6, 300], [2, 6, 300], [1, 4, 500], [3, 1, 900], [1, 0, 300], [1, 1, 450]], 1000, 3000], []], ['generated mix 53', [[[3, 4, 300], [3, 5, 900]], 1500, 4000], []]]]
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 |
|---|---|---|---|
| beam over | [['BEAM', 1, 1, 1100]] | [['BEAM', 1, 1, 1100]] | Passed |
| generated mix 5 | [['BEAM', 3, 5, 3000]] | [['BEAM', 3, 5, 3000]] | Passed |
| beam equal ok | [] | [] | Passed |
| level 4 full rating | [] | [] | Passed |
| bay over | [['BAY', 3, 0, 2700]] | [['BAY', 3, 0, 2700]] | Passed |
| derated level 5 | [['BEAM', 1, 5, 950]] | [['BEAM', 1, 5, 950]] | Passed |
| floor ignored | [] | [] | Passed |
| generated mix 9 | [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]] | [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]] | Passed |
SHA-256 / 60f7bf1f7b3ef94e74b41abe12c50dfa9dcc0ce217cefd2a3ceb864ae2319d2a
Verification & scope
Stipulated capacities and derate; not an engineering rack load calculation. 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:52:11.339865+00:00.
Case digest / c0d3473348f9bd6b9957e0817c334c902120bfa1b8056451a03bb039ea639cf6