FA-94311 / Shift rostering labor rules / Open access
Supplement paid on additional minutes inside the tolerance · case 01
Every additional minute earns the supplement.
ROOT CAUSE
The tolerance is not subtracted from the supplement base.
VERIFIED REPAIR
Supplement only additional minutes beyond the tolerance.
Unsuccessful approach: Falling back to all additional minutes within the tolerance pays the supplement there.
Case contract
Contract minutes per week and worked minutes per week. Per week: top-up = shortfall below contract; additional = minutes between contract and 2400; supplement base = additional minutes beyond a tolerance of contract // 10; overtime = minutes above 2400. Return [top-up, additional, supplement base, overtime] per week.
Why this case matters
Part-time contracts pay guaranteed hours, additional hours and supplements; each band has its own boundary.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(contract, weeks):
out = []
free = contract // 10
for w in weeks:
top = max(contract - w, 0)
add = max(min(w, 2400) - contract, 0)
sup = add
ot = max(w - 2400, 0)
out.append([top, add, sup, ot])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: supplement tolerance 1', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('regression variant: supplement tolerance 2', [1234, [2880, 1056, 2880, 2400, 1357]],
[[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]]),
('partial repair guard 3', [1205, [2373, 1325, 1326, 1205]],
[[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]]),
('boundary control 4', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('normal control 5', [1205, [1325, 2500, 2500, 1145]],
[[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]]),
('normal control 6', [1205, [1145, 2500]], [[60, 0, 0, 0], [0, 1195, 1075, 100]]),
('normal control 7', [2100, [2310, 2400]], [[0, 210, 0, 0], [0, 300, 90, 0]]),
('normal control 8', [1500, [2880, 2400, 0, 0]],
[[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]])],
[('regression: supplement tolerance 1', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('regression variant: supplement tolerance 2', [1800, [1740, 2880]], [[60, 0, 0, 0], [0, 600, 420, 480]]),
('partial repair guard 3', [1500, [1651, 1650]], [[0, 151, 1, 0], [0, 150, 0, 0]]),
('boundary control 4', [1500, [2500, 1000]], [[0, 900, 750, 100], [500, 0, 0, 0]]),
('boundary control 5', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('normal control 6', [1234, [2728, 2378]], [[0, 1166, 1043, 328], [0, 1144, 1021, 0]]),
('normal control 7', [1500, [5, 1500, 1651, 1651, 1651]],
[[1495, 0, 0, 0], [0, 0, 0, 0], [0, 151, 1, 0], [0, 151, 1, 0], [0, 151, 1, 0]]),
('normal control 8', [1800, [1800, 1980]], [[0, 0, 0, 0], [0, 180, 0, 0]])],
[('regression: supplement tolerance 1', [1500, [2500, 1000]], [[0, 900, 750, 100], [500, 0, 0, 0]]),
('regression variant: supplement tolerance 2', [1234, [1174, 2400, 1358]],
[[60, 0, 0, 0], [0, 1166, 1043, 0], [0, 124, 1, 0]]),
('partial repair guard 3', [1800, [1980, 1981, 1980, 2500]],
[[0, 180, 0, 0], [0, 181, 1, 0], [0, 180, 0, 0], [0, 600, 420, 100]]),
('boundary control 4', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 5', [1200, [27, 2500]], [[1173, 0, 0, 0], [0, 1200, 1080, 100]]),
('normal control 6', [1200, [2400, 1320, 1200]], [[0, 1200, 1080, 0], [0, 120, 0, 0], [0, 0, 0, 0]]),
('normal control 7', [1800, [2500, 2500]], [[0, 600, 420, 100], [0, 600, 420, 100]]),
('normal control 8', [1200, [1140, 2880, 2880, 1320, 2500]],
[[60, 0, 0, 0], [0, 1200, 1080, 480], [0, 1200, 1080, 480], [0, 120, 0, 0], [0, 1200, 1080, 100]])],
[('regression: supplement tolerance 1', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('regression variant: supplement tolerance 2', [1800, [0, 1981]], [[1800, 0, 0, 0], [0, 181, 1, 0]]),
('partial repair guard 3', [2100, [2400, 2400, 0, 2310, 2400]],
[[0, 300, 90, 0], [0, 300, 90, 0], [2100, 0, 0, 0], [0, 210, 0, 0], [0, 300, 90, 0]]),
('boundary control 4', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('boundary control 5', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 6', [1500, [2500, 2400, 2500, 1650]],
[[0, 900, 750, 100], [0, 900, 750, 0], [0, 900, 750, 100], [0, 150, 0, 0]]),
('normal control 7', [1234, [2400, 1234, 1174, 1358, 1357]],
[[0, 1166, 1043, 0], [0, 0, 0, 0], [60, 0, 0, 0], [0, 124, 1, 0], [0, 123, 0, 0]]),
('normal control 8', [2100, [2040, 2310, 0, 2880, 2310]],
[[60, 0, 0, 0], [0, 210, 0, 0], [2100, 0, 0, 0], [0, 300, 90, 480], [0, 210, 0, 0]])],
[('regression: supplement tolerance 1', [1500, [1650, 1500]], [[0, 150, 0, 0], [0, 0, 0, 0]]),
('regression variant: supplement tolerance 2', [1500, [1500, 1957, 1500]],
[[0, 0, 0, 0], [0, 457, 307, 0], [0, 0, 0, 0]]),
('partial repair guard 3', [1200, [1320, 1200, 1200, 2880, 2880]],
[[0, 120, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 1200, 1080, 480], [0, 1200, 1080, 480]]),
('boundary control 4', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('boundary control 5', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 6', [1500, [1651, 1146]], [[0, 151, 1, 0], [354, 0, 0, 0]]),
('normal control 7', [1200, [2880, 1200, 1200, 1140]],
[[0, 1200, 1080, 480], [0, 0, 0, 0], [0, 0, 0, 0], [60, 0, 0, 0]]),
('normal control 8', [1200, [2500, 630, 1200, 2880]],
[[0, 1200, 1080, 100], [570, 0, 0, 0], [0, 0, 0, 0], [0, 1200, 1080, 480]])]]
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 |
|---|---|---|---|
| regression: supplement tolerance 1 | [[0, 120, 120, 0], [0, 121, 121, 0]] | [[0, 120, 0, 0], [0, 121, 1, 0]] | Failed |
| regression variant: supplement tolerance 2 | [[0, 1166, 1166, 480], [178, 0, 0, 0], [0, 1166, 1166, 480], [0, 1166, 1166, 0], [0, 123, 123, 0]] | [[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]] | Failed |
| partial repair guard 3 | [[0, 1168, 1168, 0], [0, 120, 120, 0], [0, 121, 121, 0], [0, 0, 0, 0]] | [[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]] | Failed |
| boundary control 4 | [[0, 600, 600, 0], [0, 600, 600, 600]] | [[0, 600, 420, 0], [0, 600, 420, 600]] | Failed |
| normal control 5 | [[0, 120, 120, 0], [0, 1195, 1195, 100], [0, 1195, 1195, 100], [60, 0, 0, 0]] | [[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]] | Failed |
| normal control 6 | [[60, 0, 0, 0], [0, 1195, 1195, 100]] | [[60, 0, 0, 0], [0, 1195, 1075, 100]] | Failed |
| normal control 7 | [[0, 210, 210, 0], [0, 300, 300, 0]] | [[0, 210, 0, 0], [0, 300, 90, 0]] | Failed |
| normal control 8 | [[0, 900, 900, 480], [0, 900, 900, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]] | [[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]] | Failed |
SHA-256 / 707ba2f7a1af21233164704957f2da34bfc650f87a85cdf971eeeeba7a36525b
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(contract, weeks):
out = []
free = contract // 10
for w in weeks:
top = max(contract - w, 0)
add = max(min(w, 2400) - contract, 0)
sup = max(add - free, 0) if add > free else add
ot = max(w - 2400, 0)
out.append([top, add, sup, ot])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: supplement tolerance 1', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('regression variant: supplement tolerance 2', [1234, [2880, 1056, 2880, 2400, 1357]],
[[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]]),
('partial repair guard 3', [1205, [2373, 1325, 1326, 1205]],
[[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]]),
('boundary control 4', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('normal control 5', [1205, [1325, 2500, 2500, 1145]],
[[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]]),
('normal control 6', [1205, [1145, 2500]], [[60, 0, 0, 0], [0, 1195, 1075, 100]]),
('normal control 7', [2100, [2310, 2400]], [[0, 210, 0, 0], [0, 300, 90, 0]]),
('normal control 8', [1500, [2880, 2400, 0, 0]],
[[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]])],
[('regression: supplement tolerance 1', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('regression variant: supplement tolerance 2', [1800, [1740, 2880]], [[60, 0, 0, 0], [0, 600, 420, 480]]),
('partial repair guard 3', [1500, [1651, 1650]], [[0, 151, 1, 0], [0, 150, 0, 0]]),
('boundary control 4', [1500, [2500, 1000]], [[0, 900, 750, 100], [500, 0, 0, 0]]),
('boundary control 5', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('normal control 6', [1234, [2728, 2378]], [[0, 1166, 1043, 328], [0, 1144, 1021, 0]]),
('normal control 7', [1500, [5, 1500, 1651, 1651, 1651]],
[[1495, 0, 0, 0], [0, 0, 0, 0], [0, 151, 1, 0], [0, 151, 1, 0], [0, 151, 1, 0]]),
('normal control 8', [1800, [1800, 1980]], [[0, 0, 0, 0], [0, 180, 0, 0]])],
[('regression: supplement tolerance 1', [1500, [2500, 1000]], [[0, 900, 750, 100], [500, 0, 0, 0]]),
('regression variant: supplement tolerance 2', [1234, [1174, 2400, 1358]],
[[60, 0, 0, 0], [0, 1166, 1043, 0], [0, 124, 1, 0]]),
('partial repair guard 3', [1800, [1980, 1981, 1980, 2500]],
[[0, 180, 0, 0], [0, 181, 1, 0], [0, 180, 0, 0], [0, 600, 420, 100]]),
('boundary control 4', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 5', [1200, [27, 2500]], [[1173, 0, 0, 0], [0, 1200, 1080, 100]]),
('normal control 6', [1200, [2400, 1320, 1200]], [[0, 1200, 1080, 0], [0, 120, 0, 0], [0, 0, 0, 0]]),
('normal control 7', [1800, [2500, 2500]], [[0, 600, 420, 100], [0, 600, 420, 100]]),
('normal control 8', [1200, [1140, 2880, 2880, 1320, 2500]],
[[60, 0, 0, 0], [0, 1200, 1080, 480], [0, 1200, 1080, 480], [0, 120, 0, 0], [0, 1200, 1080, 100]])],
[('regression: supplement tolerance 1', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('regression variant: supplement tolerance 2', [1800, [0, 1981]], [[1800, 0, 0, 0], [0, 181, 1, 0]]),
('partial repair guard 3', [2100, [2400, 2400, 0, 2310, 2400]],
[[0, 300, 90, 0], [0, 300, 90, 0], [2100, 0, 0, 0], [0, 210, 0, 0], [0, 300, 90, 0]]),
('boundary control 4', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('boundary control 5', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 6', [1500, [2500, 2400, 2500, 1650]],
[[0, 900, 750, 100], [0, 900, 750, 0], [0, 900, 750, 100], [0, 150, 0, 0]]),
('normal control 7', [1234, [2400, 1234, 1174, 1358, 1357]],
[[0, 1166, 1043, 0], [0, 0, 0, 0], [60, 0, 0, 0], [0, 124, 1, 0], [0, 123, 0, 0]]),
('normal control 8', [2100, [2040, 2310, 0, 2880, 2310]],
[[60, 0, 0, 0], [0, 210, 0, 0], [2100, 0, 0, 0], [0, 300, 90, 480], [0, 210, 0, 0]])],
[('regression: supplement tolerance 1', [1500, [1650, 1500]], [[0, 150, 0, 0], [0, 0, 0, 0]]),
('regression variant: supplement tolerance 2', [1500, [1500, 1957, 1500]],
[[0, 0, 0, 0], [0, 457, 307, 0], [0, 0, 0, 0]]),
('partial repair guard 3', [1200, [1320, 1200, 1200, 2880, 2880]],
[[0, 120, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 1200, 1080, 480], [0, 1200, 1080, 480]]),
('boundary control 4', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('boundary control 5', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 6', [1500, [1651, 1146]], [[0, 151, 1, 0], [354, 0, 0, 0]]),
('normal control 7', [1200, [2880, 1200, 1200, 1140]],
[[0, 1200, 1080, 480], [0, 0, 0, 0], [0, 0, 0, 0], [60, 0, 0, 0]]),
('normal control 8', [1200, [2500, 630, 1200, 2880]],
[[0, 1200, 1080, 100], [570, 0, 0, 0], [0, 0, 0, 0], [0, 1200, 1080, 480]])]]
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 |
|---|---|---|---|
| regression: supplement tolerance 1 | [[0, 120, 120, 0], [0, 121, 1, 0]] | [[0, 120, 0, 0], [0, 121, 1, 0]] | Failed |
| regression variant: supplement tolerance 2 | [[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 123, 0]] | [[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]] | Failed |
| partial repair guard 3 | [[0, 1168, 1048, 0], [0, 120, 120, 0], [0, 121, 1, 0], [0, 0, 0, 0]] | [[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]] | Failed |
| boundary control 4 | [[0, 600, 420, 0], [0, 600, 420, 600]] | [[0, 600, 420, 0], [0, 600, 420, 600]] | Passed |
| normal control 5 | [[0, 120, 120, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]] | [[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]] | Failed |
| normal control 6 | [[60, 0, 0, 0], [0, 1195, 1075, 100]] | [[60, 0, 0, 0], [0, 1195, 1075, 100]] | Passed |
| normal control 7 | [[0, 210, 210, 0], [0, 300, 90, 0]] | [[0, 210, 0, 0], [0, 300, 90, 0]] | Failed |
| normal control 8 | [[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]] | [[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]] | Passed |
SHA-256 / 2142b8e459b0c57c6a9942ffba01ac5c80101fc32a0e52fef7f8a144fc59f8e2
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(contract, weeks):
out = []
free = contract // 10
for w in weeks:
top = max(contract - w, 0)
add = max(min(w, 2400) - contract, 0)
sup = max(add - free, 0)
ot = max(w - 2400, 0)
out.append([top, add, sup, ot])
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: supplement tolerance 1', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('regression variant: supplement tolerance 2', [1234, [2880, 1056, 2880, 2400, 1357]],
[[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]]),
('partial repair guard 3', [1205, [2373, 1325, 1326, 1205]],
[[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]]),
('boundary control 4', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('normal control 5', [1205, [1325, 2500, 2500, 1145]],
[[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]]),
('normal control 6', [1205, [1145, 2500]], [[60, 0, 0, 0], [0, 1195, 1075, 100]]),
('normal control 7', [2100, [2310, 2400]], [[0, 210, 0, 0], [0, 300, 90, 0]]),
('normal control 8', [1500, [2880, 2400, 0, 0]],
[[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]])],
[('regression: supplement tolerance 1', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('regression variant: supplement tolerance 2', [1800, [1740, 2880]], [[60, 0, 0, 0], [0, 600, 420, 480]]),
('partial repair guard 3', [1500, [1651, 1650]], [[0, 151, 1, 0], [0, 150, 0, 0]]),
('boundary control 4', [1500, [2500, 1000]], [[0, 900, 750, 100], [500, 0, 0, 0]]),
('boundary control 5', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('normal control 6', [1234, [2728, 2378]], [[0, 1166, 1043, 328], [0, 1144, 1021, 0]]),
('normal control 7', [1500, [5, 1500, 1651, 1651, 1651]],
[[1495, 0, 0, 0], [0, 0, 0, 0], [0, 151, 1, 0], [0, 151, 1, 0], [0, 151, 1, 0]]),
('normal control 8', [1800, [1800, 1980]], [[0, 0, 0, 0], [0, 180, 0, 0]])],
[('regression: supplement tolerance 1', [1500, [2500, 1000]], [[0, 900, 750, 100], [500, 0, 0, 0]]),
('regression variant: supplement tolerance 2', [1234, [1174, 2400, 1358]],
[[60, 0, 0, 0], [0, 1166, 1043, 0], [0, 124, 1, 0]]),
('partial repair guard 3', [1800, [1980, 1981, 1980, 2500]],
[[0, 180, 0, 0], [0, 181, 1, 0], [0, 180, 0, 0], [0, 600, 420, 100]]),
('boundary control 4', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 5', [1200, [27, 2500]], [[1173, 0, 0, 0], [0, 1200, 1080, 100]]),
('normal control 6', [1200, [2400, 1320, 1200]], [[0, 1200, 1080, 0], [0, 120, 0, 0], [0, 0, 0, 0]]),
('normal control 7', [1800, [2500, 2500]], [[0, 600, 420, 100], [0, 600, 420, 100]]),
('normal control 8', [1200, [1140, 2880, 2880, 1320, 2500]],
[[60, 0, 0, 0], [0, 1200, 1080, 480], [0, 1200, 1080, 480], [0, 120, 0, 0], [0, 1200, 1080, 100]])],
[('regression: supplement tolerance 1', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('regression variant: supplement tolerance 2', [1800, [0, 1981]], [[1800, 0, 0, 0], [0, 181, 1, 0]]),
('partial repair guard 3', [2100, [2400, 2400, 0, 2310, 2400]],
[[0, 300, 90, 0], [0, 300, 90, 0], [2100, 0, 0, 0], [0, 210, 0, 0], [0, 300, 90, 0]]),
('boundary control 4', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('boundary control 5', [1205, [1325, 1326]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 6', [1500, [2500, 2400, 2500, 1650]],
[[0, 900, 750, 100], [0, 900, 750, 0], [0, 900, 750, 100], [0, 150, 0, 0]]),
('normal control 7', [1234, [2400, 1234, 1174, 1358, 1357]],
[[0, 1166, 1043, 0], [0, 0, 0, 0], [60, 0, 0, 0], [0, 124, 1, 0], [0, 123, 0, 0]]),
('normal control 8', [2100, [2040, 2310, 0, 2880, 2310]],
[[60, 0, 0, 0], [0, 210, 0, 0], [2100, 0, 0, 0], [0, 300, 90, 480], [0, 210, 0, 0]])],
[('regression: supplement tolerance 1', [1500, [1650, 1500]], [[0, 150, 0, 0], [0, 0, 0, 0]]),
('regression variant: supplement tolerance 2', [1500, [1500, 1957, 1500]],
[[0, 0, 0, 0], [0, 457, 307, 0], [0, 0, 0, 0]]),
('partial repair guard 3', [1200, [1320, 1200, 1200, 2880, 2880]],
[[0, 120, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 1200, 1080, 480], [0, 1200, 1080, 480]]),
('boundary control 4', [1800, [2400, 3000]], [[0, 600, 420, 0], [0, 600, 420, 600]]),
('boundary control 5', [1200, [1320, 1321]], [[0, 120, 0, 0], [0, 121, 1, 0]]),
('normal control 6', [1500, [1651, 1146]], [[0, 151, 1, 0], [354, 0, 0, 0]]),
('normal control 7', [1200, [2880, 1200, 1200, 1140]],
[[0, 1200, 1080, 480], [0, 0, 0, 0], [0, 0, 0, 0], [60, 0, 0, 0]]),
('normal control 8', [1200, [2500, 630, 1200, 2880]],
[[0, 1200, 1080, 100], [570, 0, 0, 0], [0, 0, 0, 0], [0, 1200, 1080, 480]])]]
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 |
|---|---|---|---|
| regression: supplement tolerance 1 | [[0, 120, 0, 0], [0, 121, 1, 0]] | [[0, 120, 0, 0], [0, 121, 1, 0]] | Passed |
| regression variant: supplement tolerance 2 | [[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]] | [[0, 1166, 1043, 480], [178, 0, 0, 0], [0, 1166, 1043, 480], [0, 1166, 1043, 0], [0, 123, 0, 0]] | Passed |
| partial repair guard 3 | [[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]] | [[0, 1168, 1048, 0], [0, 120, 0, 0], [0, 121, 1, 0], [0, 0, 0, 0]] | Passed |
| boundary control 4 | [[0, 600, 420, 0], [0, 600, 420, 600]] | [[0, 600, 420, 0], [0, 600, 420, 600]] | Passed |
| normal control 5 | [[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]] | [[0, 120, 0, 0], [0, 1195, 1075, 100], [0, 1195, 1075, 100], [60, 0, 0, 0]] | Passed |
| normal control 6 | [[60, 0, 0, 0], [0, 1195, 1075, 100]] | [[60, 0, 0, 0], [0, 1195, 1075, 100]] | Passed |
| normal control 7 | [[0, 210, 0, 0], [0, 300, 90, 0]] | [[0, 210, 0, 0], [0, 300, 90, 0]] | Passed |
| normal control 8 | [[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]] | [[0, 900, 750, 480], [0, 900, 750, 0], [1500, 0, 0, 0], [1500, 0, 0, 0]] | Passed |
SHA-256 / f0e0daeab1567e71e0f057db6ff2ebb0da7f47baabf6657a19ed88ba782f398b
Verification & scope
Stipulated toy labor rule for a bounded roster model; it is not legal advice and does not claim conformance with any jurisdiction, award, or collective agreement. 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:03.234628+00:00.
Case digest / b6babb820034863ce306a667df2f0918ae9e424533d21a2a345f03673dc2f4a6