FA-93846 / Shift rostering labor rules / Open access
Rest gap computed as wall-clock difference modulo one day · case 01
Two days off between shifts looks like a short rest, and overlapping shifts disappear.
ROOT CAUSE
The rest gap is reduced modulo 1440 as if both times were clock readings on adjacent days.
THE FAILURE
The rest gap is reduced modulo 1440 as if both times were clock readings on adjacent days.
Unsuccessful approach: Reducing modulo a week still turns overlaps into large positive gaps.
Case contract
Input shifts as [worker, start, end] absolute minutes and a minimum rest "HH:MM". For each worker, walk shifts by start time, comparing each start with the latest end seen so far (and that shift index): a negative gap is an overlap, a gap below the minimum rest is short_rest; exactly the minimum is compliant. Return [worker, earlier index, later index, kind] rows ordered by worker then start.
Why this case matters
Rest-period validation is the most common roster labor rule; errors either hide fatigue risks or block legal rosters.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(shifts, min_rest):
h, m = min_rest.split(':')
limit = int(h) * 60 + int(m)
by = {}
for i, (w, s, e) in enumerate(shifts):
by.setdefault(w, []).append((s, e, i))
out = []
for w in sorted(by):
seq = sorted(by[w])
prev = None
for s, e, i in seq:
if prev is not None:
pe, pi = prev
gap = (s - pe) % 1440
if gap < 0:
out.append([w, pi, i, 'overlap'])
elif gap < limit:
out.append([w, pi, i, 'short_rest'])
if prev is None or e > prev[0]:
prev = (e, i)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: clock wrap gap 1', [[['ana', 0, 900], ['ana', 100, 300], ['ana', 600, 800]], '11:00'],
[['ana', 0, 1, 'overlap'], ['ana', 0, 2, 'overlap']]),
('regression variant: clock wrap gap 2',
[[['ana', 1320, 1680], ['chi', 2579, 2939], ['dev', 2570, 2810], ['ana', 2311, 2911], ['ana', 3572, 3932],
['chi', 0, 720], ['dev', 2000, 2600], ['chi', 1350, 1950], ['ana', 3812, 4412]],
'12:00'],
[['ana', 0, 3, 'short_rest'], ['ana', 3, 4, 'short_rest'], ['ana', 4, 8, 'overlap'],
['chi', 5, 7, 'short_rest'], ['chi', 7, 1, 'short_rest'], ['dev', 6, 2, 'overlap']]),
('partial repair guard 3',
[[['dev', 2101, 2821], ['ana', 300, 1020], ['chi', 2000, 2720], ['dev', 300, 780], ['dev', 1411, 1771],
['dev', 1741, 2221], ['chi', 1940, 2420], ['ana', 2320, 3040], ['ana', 1720, 2440]],
'10:30'],
[['ana', 8, 7, 'overlap'], ['chi', 6, 2, 'overlap'], ['dev', 4, 5, 'overlap'], ['dev', 5, 0, 'overlap']]),
('boundary control 4', [[['ana', 0, 480], ['ana', 1139, 1620]], '11:00'], [['ana', 0, 1, 'short_rest']]),
('normal control 5', [[['chi', 2010, 2490], ['chi', 1320, 2040]], '09:45'], [['chi', 1, 0, 'overlap']]),
('normal control 6',
[[['ana', 3401, 3881], ['dev', 1680, 1920], ['dev', 1320, 1800], ['ana', 2341, 2701], ['ana', 1320, 1680],
['chi', 1589, 2309], ['chi', 3209, 3809], ['ana', 4512, 4752], ['chi', 300, 1020], ['dev', 2551, 2911],
['chi', 1649, 2129]],
'11:00'],
[['ana', 0, 7, 'short_rest'], ['chi', 8, 5, 'short_rest'], ['chi', 5, 10, 'overlap'],
['dev', 2, 1, 'overlap'], ['dev', 1, 9, 'short_rest']]),
('normal control 7',
[[['ben', 1320, 1560], ['dev', 1320, 1800], ['dev', 4980, 5460], ['dev', 3800, 4280], ['ben', 2190, 2670]],
'11:00'],
[['ben', 0, 4, 'short_rest']]),
('normal control 8',
[[['ben', 2380, 3100], ['chi', 300, 1020], ['chi', 2821, 3301], ['ana', 2000, 2480], ['ben', 1320, 1680],
['chi', 1681, 1921], ['ana', 2480, 3080]],
'10:31'],
[['ana', 3, 6, 'short_rest']])],
[('regression: clock wrap gap 1', [[['ben', 0, 480], ['ben', 3400, 3800]], '11:00'], []),
('regression variant: clock wrap gap 2',
[[['chi', 2700, 3180], ['ben', 1380, 1860], ['chi', 1320, 1800], ['chi', 3150, 3750], ['ben', 0, 480],
['chi', 5750, 5990]],
'10:30'],
[['chi', 0, 3, 'overlap']]),
('partial repair guard 3',
[[['ana', 1380, 1620], ['dev', 3420, 3660], ['ana', 3241, 3841], ['ana', 2220, 2580], ['ben', 4841, 5201],
['ana', 300, 780], ['ben', 3460, 4180], ['ben', 1320, 1800], ['dev', 1320, 1920], ['dev', 3540, 4260],
['ben', 2500, 2860]],
'10:30'],
[['ana', 5, 0, 'short_rest'], ['ana', 0, 3, 'short_rest'], ['ben', 10, 6, 'short_rest'],
['dev', 1, 9, 'overlap']]),
('boundary control 4', [[['ben', 0, 480], ['ben', 1110, 1400]], '10:30'], []),
('boundary control 5', [[['ana', 0, 480], ['ana', 480, 960], ['ben', 0, 480]], '10:30'],
[['ana', 0, 1, 'short_rest']]),
('normal control 6',
[[['ana', 1940, 2180], ['ana', 6040, 6760], ['ana', 2000, 2480], ['ana', 3680, 4040]], '12:00'],
[['ana', 0, 2, 'overlap']]),
('normal control 7', [[['chi', 300, 900], ['chi', 870, 1230], ['chi', 3230, 3710]], '10:31'],
[['chi', 0, 1, 'overlap']]),
('normal control 8',
[[['chi', 2251, 2731], ['ben', 2940, 3540], ['ben', 4171, 4411], ['chi', 1320, 1680], ['chi', 1260, 1620],
['ben', 1320, 2040]],
'09:45'],
[['chi', 4, 3, 'overlap'], ['chi', 3, 0, 'short_rest']])],
[('regression: clock wrap gap 1', [[['ana', 4760, 5480], ['ana', 300, 660], ['ana', 2660, 3260]], '10:31'],
[]),
('regression variant: clock wrap gap 2',
[[['dev', 1771, 2011], ['dev', 300, 540], ['ana', 0, 240], ['ana', 2240, 2840], ['dev', 510, 1110]],
'10:30'],
[['dev', 1, 4, 'overlap']]),
('partial repair guard 3',
[[['dev', 1420, 2020], ['ben', 3111, 3591], ['chi', 1320, 1680], ['chi', 480, 720], ['dev', 0, 720],
['chi', 0, 600], ['ben', 2000, 2480], ['ben', 3051, 3771], ['dev', 2651, 3251], ['chi', 2280, 2760]],
'09:45'],
[['ben', 6, 7, 'short_rest'], ['ben', 7, 1, 'overlap'], ['chi', 5, 3, 'overlap']]),
('boundary control 4', [[['ana', 1200, 1680], ['ana', 0, 480]], '11:00'], []),
('boundary control 5', [[['ana', 0, 480], ['ana', 1140, 1620]], '11:00'], []),
('normal control 6',
[[['ana', 0, 600], ['ben', 300, 900], ['chi', 5400, 6000], ['chi', 6600, 7200], ['ben', 2900, 3500],
['chi', 2000, 2600], ['chi', 4100, 4700], ['ben', 4131, 4371], ['ana', 480, 1200]],
'10:30'],
[['ana', 0, 8, 'overlap'], ['chi', 2, 3, 'short_rest']]),
('normal control 7',
[[['ben', 1800, 2280], ['chi', 2069, 2549], ['chi', 0, 480], ['ben', 300, 900], ['chi', 1080, 1440]],
'11:00'],
[['chi', 2, 4, 'short_rest'], ['chi', 4, 1, 'short_rest']]),
('normal control 8',
[[['chi', 2000, 2240], ['ben', 1261, 1741], ['chi', 2840, 3440], ['ben', 0, 600], ['ana', 1021, 1381],
['ben', 2641, 3361], ['ana', 0, 360]],
'10:31'],
[['chi', 0, 2, 'short_rest']])],
[('regression: clock wrap gap 1',
[[['ana', 4741, 5101], ['dev', 1940, 2300], ['ben', 3719, 3959], ['ben', 2999, 3719], ['ben', 2549, 3029],
['ben', 1320, 1920], ['ana', 2220, 2940], ['ana', 0, 720], ['dev', 2000, 2360], ['ana', 3601, 3841]],
'11:00'],
[['ben', 5, 4, 'short_rest'], ['ben', 4, 3, 'overlap'], ['ben', 3, 2, 'short_rest'],
['dev', 1, 8, 'overlap']]),
('regression variant: clock wrap gap 2',
[[['chi', 2480, 2720], ['chi', 2000, 2600], ['chi', 4720, 5080], ['chi', 5740, 5980]], '09:45'],
[['chi', 1, 0, 'overlap']]),
('boundary control 3', [[['ben', 0, 480], ['ben', 3400, 3800]], '11:00'], []),
('boundary control 4', [[['ana', 0, 900], ['ana', 100, 300], ['ana', 600, 800]], '11:00'],
[['ana', 0, 1, 'overlap'], ['ana', 0, 2, 'overlap']]),
('normal control 5',
[[['chi', 3180, 3780], ['dev', 1320, 1680], ['dev', 1560, 2040], ['dev', 5340, 5580], ['chi', 1320, 1680],
['dev', 4040, 4640]],
'09:45'],
[['dev', 1, 2, 'overlap']]),
('normal control 6',
[[['chi', 1620, 2340], ['chi', 0, 360], ['dev', 2000, 2600], ['chi', 2971, 3451], ['ben', 2251, 2971],
['ben', 1110, 1590], ['dev', 5760, 6240], ['dev', 3229, 3709], ['chi', 1260, 1740], ['dev', 4409, 5129],
['ben', 0, 480]],
'12:00'],
[['ben', 10, 5, 'short_rest'], ['ben', 5, 4, 'short_rest'], ['chi', 8, 0, 'overlap'],
['chi', 0, 3, 'short_rest'], ['dev', 2, 7, 'short_rest'], ['dev', 7, 9, 'short_rest'],
['dev', 9, 6, 'short_rest']]),
('normal control 7',
[[['dev', 2460, 2700], ['dev', 2700, 3300], ['chi', 6549, 6909], ['dev', 0, 480], ['chi', 2960, 3320],
['chi', 2000, 2360], ['dev', 1110, 1830], ['chi', 3949, 4549]],
'11:00'],
[['chi', 5, 4, 'short_rest'], ['chi', 4, 7, 'short_rest'], ['dev', 3, 6, 'short_rest'],
['dev', 6, 0, 'short_rest'], ['dev', 0, 1, 'short_rest']]),
('normal control 8', [[['chi', 1351, 1831], ['chi', 0, 720]], '09:45'], [])],
[('regression: clock wrap gap 1',
[[['ana', 1940, 2180], ['ana', 6040, 6760], ['ana', 2000, 2480], ['ana', 3680, 4040]], '12:00'],
[['ana', 0, 2, 'overlap']]),
('regression variant: clock wrap gap 2',
[[['chi', 1620, 2340], ['chi', 0, 360], ['dev', 2000, 2600], ['chi', 2971, 3451], ['ben', 2251, 2971],
['ben', 1110, 1590], ['dev', 5760, 6240], ['dev', 3229, 3709], ['chi', 1260, 1740], ['dev', 4409, 5129],
['ben', 0, 480]],
'12:00'],
[['ben', 10, 5, 'short_rest'], ['ben', 5, 4, 'short_rest'], ['chi', 8, 0, 'overlap'],
['chi', 0, 3, 'short_rest'], ['dev', 2, 7, 'short_rest'], ['dev', 7, 9, 'short_rest'],
['dev', 9, 6, 'short_rest']]),
('partial repair guard 3',
[[['chi', 1940, 2420], ['ana', 1320, 1680], ['ana', 5760, 6480], ['ana', 2340, 2700], ['chi', 2000, 2720],
['chi', 3051, 3771], ['ana', 4700, 5060]],
'11:00'],
[['chi', 0, 4, 'overlap'], ['chi', 4, 5, 'short_rest']]),
('boundary control 4', [[['ana', 0, 480], ['ana', 1139, 1620]], '11:00'], [['ana', 0, 1, 'short_rest']]),
('boundary control 5', [[['ben', 0, 480], ['ben', 1110, 1400]], '10:30'], []),
('normal control 6',
[[['chi', 3540, 3780], ['chi', 1320, 1560], ['chi', 4411, 4651], ['chi', 2189, 2909]], '10:30'],
[['chi', 1, 3, 'short_rest']]),
('normal control 7',
[[['dev', 1260, 1860], ['ana', 2551, 2911], ['ana', 1231, 1951], ['ana', 0, 600], ['dev', 0, 600]],
'09:45'],
[]),
('normal control 8',
[[['ben', 2380, 3100], ['chi', 300, 1020], ['chi', 2821, 3301], ['ana', 2000, 2480], ['ben', 1320, 1680],
['chi', 1681, 1921], ['ana', 2480, 3080]],
'10:31'],
[['ana', 3, 6, 'short_rest']])]]
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: clock wrap gap 1 | [['ana', 0, 1, 'short_rest']] | [['ana', 0, 1, 'overlap'], ['ana', 0, 2, 'overlap']] | Failed |
| regression variant: clock wrap gap 2 | [['ana', 0, 3, 'short_rest'], ['ana', 3, 4, 'short_rest'], ['chi', 5, 7, 'short_rest'], ['chi', 7, 1, 'short_rest']] | [['ana', 0, 3, 'short_rest'], ['ana', 3, 4, 'short_rest'], ['ana', 4, 8, 'overlap'], ['chi', 5, 7, 'short_rest'], ['chi', 7, 1, 'short_rest'], ['dev', 6, 2, 'overlap']] | Failed |
| partial repair guard 3 | [] | [['ana', 8, 7, 'overlap'], ['chi', 6, 2, 'overlap'], ['dev', 4, 5, 'overlap'], ['dev', 5, 0, 'overlap']] | Failed |
| boundary control 4 | [['ana', 0, 1, 'short_rest']] | [['ana', 0, 1, 'short_rest']] | Passed |
| normal control 5 | [] | [['chi', 1, 0, 'overlap']] | Failed |
| normal control 6 | [['ana', 0, 7, 'short_rest'], ['chi', 8, 5, 'short_rest'], ['dev', 1, 9, 'short_rest']] | [['ana', 0, 7, 'short_rest'], ['chi', 8, 5, 'short_rest'], ['chi', 5, 10, 'overlap'], ['dev', 2, 1, 'overlap'], ['dev', 1, 9, 'short_rest']] | Failed |
| normal control 7 | [['ben', 0, 4, 'short_rest'], ['dev', 1, 3, 'short_rest']] | [['ben', 0, 4, 'short_rest']] | Failed |
| normal control 8 | [['ana', 3, 6, 'short_rest']] | [['ana', 3, 6, 'short_rest']] | Passed |
SHA-256 / bfd8e127cdd64334afbef11a4cf4d1a0c99da7f1b9232efb60a2aa2b178a9ab0
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(shifts, min_rest):
h, m = min_rest.split(':')
limit = int(h) * 60 + int(m)
by = {}
for i, (w, s, e) in enumerate(shifts):
by.setdefault(w, []).append((s, e, i))
out = []
for w in sorted(by):
seq = sorted(by[w])
prev = None
for s, e, i in seq:
if prev is not None:
pe, pi = prev
gap = (s - pe) % 10080
if gap < 0:
out.append([w, pi, i, 'overlap'])
elif gap < limit:
out.append([w, pi, i, 'short_rest'])
if prev is None or e > prev[0]:
prev = (e, i)
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: clock wrap gap 1', [[['ana', 0, 900], ['ana', 100, 300], ['ana', 600, 800]], '11:00'],
[['ana', 0, 1, 'overlap'], ['ana', 0, 2, 'overlap']]),
('regression variant: clock wrap gap 2',
[[['ana', 1320, 1680], ['chi', 2579, 2939], ['dev', 2570, 2810], ['ana', 2311, 2911], ['ana', 3572, 3932],
['chi', 0, 720], ['dev', 2000, 2600], ['chi', 1350, 1950], ['ana', 3812, 4412]],
'12:00'],
[['ana', 0, 3, 'short_rest'], ['ana', 3, 4, 'short_rest'], ['ana', 4, 8, 'overlap'],
['chi', 5, 7, 'short_rest'], ['chi', 7, 1, 'short_rest'], ['dev', 6, 2, 'overlap']]),
('partial repair guard 3',
[[['dev', 2101, 2821], ['ana', 300, 1020], ['chi', 2000, 2720], ['dev', 300, 780], ['dev', 1411, 1771],
['dev', 1741, 2221], ['chi', 1940, 2420], ['ana', 2320, 3040], ['ana', 1720, 2440]],
'10:30'],
[['ana', 8, 7, 'overlap'], ['chi', 6, 2, 'overlap'], ['dev', 4, 5, 'overlap'], ['dev', 5, 0, 'overlap']]),
('boundary control 4', [[['ana', 0, 480], ['ana', 1139, 1620]], '11:00'], [['ana', 0, 1, 'short_rest']]),
('normal control 5', [[['chi', 2010, 2490], ['chi', 1320, 2040]], '09:45'], [['chi', 1, 0, 'overlap']]),
('normal control 6',
[[['ana', 3401, 3881], ['dev', 1680, 1920], ['dev', 1320, 1800], ['ana', 2341, 2701], ['ana', 1320, 1680],
['chi', 1589, 2309], ['chi', 3209, 3809], ['ana', 4512, 4752], ['chi', 300, 1020], ['dev', 2551, 2911],
['chi', 1649, 2129]],
'11:00'],
[['ana', 0, 7, 'short_rest'], ['chi', 8, 5, 'short_rest'], ['chi', 5, 10, 'overlap'],
['dev', 2, 1, 'overlap'], ['dev', 1, 9, 'short_rest']]),
('normal control 7',
[[['ben', 1320, 1560], ['dev', 1320, 1800], ['dev', 4980, 5460], ['dev', 3800, 4280], ['ben', 2190, 2670]],
'11:00'],
[['ben', 0, 4, 'short_rest']]),
('normal control 8',
[[['ben', 2380, 3100], ['chi', 300, 1020], ['chi', 2821, 3301], ['ana', 2000, 2480], ['ben', 1320, 1680],
['chi', 1681, 1921], ['ana', 2480, 3080]],
'10:31'],
[['ana', 3, 6, 'short_rest']])],
[('regression: clock wrap gap 1', [[['ben', 0, 480], ['ben', 3400, 3800]], '11:00'], []),
('regression variant: clock wrap gap 2',
[[['chi', 2700, 3180], ['ben', 1380, 1860], ['chi', 1320, 1800], ['chi', 3150, 3750], ['ben', 0, 480],
['chi', 5750, 5990]],
'10:30'],
[['chi', 0, 3, 'overlap']]),
('partial repair guard 3',
[[['ana', 1380, 1620], ['dev', 3420, 3660], ['ana', 3241, 3841], ['ana', 2220, 2580], ['ben', 4841, 5201],
['ana', 300, 780], ['ben', 3460, 4180], ['ben', 1320, 1800], ['dev', 1320, 1920], ['dev', 3540, 4260],
['ben', 2500, 2860]],
'10:30'],
[['ana', 5, 0, 'short_rest'], ['ana', 0, 3, 'short_rest'], ['ben', 10, 6, 'short_rest'],
['dev', 1, 9, 'overlap']]),
('boundary control 4', [[['ben', 0, 480], ['ben', 1110, 1400]], '10:30'], []),
('boundary control 5', [[['ana', 0, 480], ['ana', 480, 960], ['ben', 0, 480]], '10:30'],
[['ana', 0, 1, 'short_rest']]),
('normal control 6',
[[['ana', 1940, 2180], ['ana', 6040, 6760], ['ana', 2000, 2480], ['ana', 3680, 4040]], '12:00'],
[['ana', 0, 2, 'overlap']]),
('normal control 7', [[['chi', 300, 900], ['chi', 870, 1230], ['chi', 3230, 3710]], '10:31'],
[['chi', 0, 1, 'overlap']]),
('normal control 8',
[[['chi', 2251, 2731], ['ben', 2940, 3540], ['ben', 4171, 4411], ['chi', 1320, 1680], ['chi', 1260, 1620],
['ben', 1320, 2040]],
'09:45'],
[['chi', 4, 3, 'overlap'], ['chi', 3, 0, 'short_rest']])],
[('regression: clock wrap gap 1', [[['ana', 4760, 5480], ['ana', 300, 660], ['ana', 2660, 3260]], '10:31'],
[]),
('regression variant: clock wrap gap 2',
[[['dev', 1771, 2011], ['dev', 300, 540], ['ana', 0, 240], ['ana', 2240, 2840], ['dev', 510, 1110]],
'10:30'],
[['dev', 1, 4, 'overlap']]),
('partial repair guard 3',
[[['dev', 1420, 2020], ['ben', 3111, 3591], ['chi', 1320, 1680], ['chi', 480, 720], ['dev', 0, 720],
['chi', 0, 600], ['ben', 2000, 2480], ['ben', 3051, 3771], ['dev', 2651, 3251], ['chi', 2280, 2760]],
'09:45'],
[['ben', 6, 7, 'short_rest'], ['ben', 7, 1, 'overlap'], ['chi', 5, 3, 'overlap']]),
('boundary control 4', [[['ana', 1200, 1680], ['ana', 0, 480]], '11:00'], []),
('boundary control 5', [[['ana', 0, 480], ['ana', 1140, 1620]], '11:00'], []),
('normal control 6',
[[['ana', 0, 600], ['ben', 300, 900], ['chi', 5400, 6000], ['chi', 6600, 7200], ['ben', 2900, 3500],
['chi', 2000, 2600], ['chi', 4100, 4700], ['ben', 4131, 4371], ['ana', 480, 1200]],
'10:30'],
[['ana', 0, 8, 'overlap'], ['chi', 2, 3, 'short_rest']]),
('normal control 7',
[[['ben', 1800, 2280], ['chi', 2069, 2549], ['chi', 0, 480], ['ben', 300, 900], ['chi', 1080, 1440]],
'11:00'],
[['chi', 2, 4, 'short_rest'], ['chi', 4, 1, 'short_rest']]),
('normal control 8',
[[['chi', 2000, 2240], ['ben', 1261, 1741], ['chi', 2840, 3440], ['ben', 0, 600], ['ana', 1021, 1381],
['ben', 2641, 3361], ['ana', 0, 360]],
'10:31'],
[['chi', 0, 2, 'short_rest']])],
[('regression: clock wrap gap 1',
[[['ana', 4741, 5101], ['dev', 1940, 2300], ['ben', 3719, 3959], ['ben', 2999, 3719], ['ben', 2549, 3029],
['ben', 1320, 1920], ['ana', 2220, 2940], ['ana', 0, 720], ['dev', 2000, 2360], ['ana', 3601, 3841]],
'11:00'],
[['ben', 5, 4, 'short_rest'], ['ben', 4, 3, 'overlap'], ['ben', 3, 2, 'short_rest'],
['dev', 1, 8, 'overlap']]),
('regression variant: clock wrap gap 2',
[[['chi', 2480, 2720], ['chi', 2000, 2600], ['chi', 4720, 5080], ['chi', 5740, 5980]], '09:45'],
[['chi', 1, 0, 'overlap']]),
('boundary control 3', [[['ben', 0, 480], ['ben', 3400, 3800]], '11:00'], []),
('boundary control 4', [[['ana', 0, 900], ['ana', 100, 300], ['ana', 600, 800]], '11:00'],
[['ana', 0, 1, 'overlap'], ['ana', 0, 2, 'overlap']]),
('normal control 5',
[[['chi', 3180, 3780], ['dev', 1320, 1680], ['dev', 1560, 2040], ['dev', 5340, 5580], ['chi', 1320, 1680],
['dev', 4040, 4640]],
'09:45'],
[['dev', 1, 2, 'overlap']]),
('normal control 6',
[[['chi', 1620, 2340], ['chi', 0, 360], ['dev', 2000, 2600], ['chi', 2971, 3451], ['ben', 2251, 2971],
['ben', 1110, 1590], ['dev', 5760, 6240], ['dev', 3229, 3709], ['chi', 1260, 1740], ['dev', 4409, 5129],
['ben', 0, 480]],
'12:00'],
[['ben', 10, 5, 'short_rest'], ['ben', 5, 4, 'short_rest'], ['chi', 8, 0, 'overlap'],
['chi', 0, 3, 'short_rest'], ['dev', 2, 7, 'short_rest'], ['dev', 7, 9, 'short_rest'],
['dev', 9, 6, 'short_rest']]),
('normal control 7',
[[['dev', 2460, 2700], ['dev', 2700, 3300], ['chi', 6549, 6909], ['dev', 0, 480], ['chi', 2960, 3320],
['chi', 2000, 2360], ['dev', 1110, 1830], ['chi', 3949, 4549]],
'11:00'],
[['chi', 5, 4, 'short_rest'], ['chi', 4, 7, 'short_rest'], ['dev', 3, 6, 'short_rest'],
['dev', 6, 0, 'short_rest'], ['dev', 0, 1, 'short_rest']]),
('normal control 8', [[['chi', 1351, 1831], ['chi', 0, 720]], '09:45'], [])],
[('regression: clock wrap gap 1',
[[['ana', 1940, 2180], ['ana', 6040, 6760], ['ana', 2000, 2480], ['ana', 3680, 4040]], '12:00'],
[['ana', 0, 2, 'overlap']]),
('regression variant: clock wrap gap 2',
[[['chi', 1620, 2340], ['chi', 0, 360], ['dev', 2000, 2600], ['chi', 2971, 3451], ['ben', 2251, 2971],
['ben', 1110, 1590], ['dev', 5760, 6240], ['dev', 3229, 3709], ['chi', 1260, 1740], ['dev', 4409, 5129],
['ben', 0, 480]],
'12:00'],
[['ben', 10, 5, 'short_rest'], ['ben', 5, 4, 'short_rest'], ['chi', 8, 0, 'overlap'],
['chi', 0, 3, 'short_rest'], ['dev', 2, 7, 'short_rest'], ['dev', 7, 9, 'short_rest'],
['dev', 9, 6, 'short_rest']]),
('partial repair guard 3',
[[['chi', 1940, 2420], ['ana', 1320, 1680], ['ana', 5760, 6480], ['ana', 2340, 2700], ['chi', 2000, 2720],
['chi', 3051, 3771], ['ana', 4700, 5060]],
'11:00'],
[['chi', 0, 4, 'overlap'], ['chi', 4, 5, 'short_rest']]),
('boundary control 4', [[['ana', 0, 480], ['ana', 1139, 1620]], '11:00'], [['ana', 0, 1, 'short_rest']]),
('boundary control 5', [[['ben', 0, 480], ['ben', 1110, 1400]], '10:30'], []),
('normal control 6',
[[['chi', 3540, 3780], ['chi', 1320, 1560], ['chi', 4411, 4651], ['chi', 2189, 2909]], '10:30'],
[['chi', 1, 3, 'short_rest']]),
('normal control 7',
[[['dev', 1260, 1860], ['ana', 2551, 2911], ['ana', 1231, 1951], ['ana', 0, 600], ['dev', 0, 600]],
'09:45'],
[]),
('normal control 8',
[[['ben', 2380, 3100], ['chi', 300, 1020], ['chi', 2821, 3301], ['ana', 2000, 2480], ['ben', 1320, 1680],
['chi', 1681, 1921], ['ana', 2480, 3080]],
'10:31'],
[['ana', 3, 6, 'short_rest']])]]
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: clock wrap gap 1 | [] | [['ana', 0, 1, 'overlap'], ['ana', 0, 2, 'overlap']] | Failed |
| regression variant: clock wrap gap 2 | [['ana', 0, 3, 'short_rest'], ['ana', 3, 4, 'short_rest'], ['chi', 5, 7, 'short_rest'], ['chi', 7, 1, 'short_rest']] | [['ana', 0, 3, 'short_rest'], ['ana', 3, 4, 'short_rest'], ['ana', 4, 8, 'overlap'], ['chi', 5, 7, 'short_rest'], ['chi', 7, 1, 'short_rest'], ['dev', 6, 2, 'overlap']] | Failed |
| partial repair guard 3 | [] | [['ana', 8, 7, 'overlap'], ['chi', 6, 2, 'overlap'], ['dev', 4, 5, 'overlap'], ['dev', 5, 0, 'overlap']] | Failed |
| boundary control 4 | [['ana', 0, 1, 'short_rest']] | [['ana', 0, 1, 'short_rest']] | Passed |
| normal control 5 | [] | [['chi', 1, 0, 'overlap']] | Failed |
| normal control 6 | [['ana', 0, 7, 'short_rest'], ['chi', 8, 5, 'short_rest'], ['dev', 1, 9, 'short_rest']] | [['ana', 0, 7, 'short_rest'], ['chi', 8, 5, 'short_rest'], ['chi', 5, 10, 'overlap'], ['dev', 2, 1, 'overlap'], ['dev', 1, 9, 'short_rest']] | Failed |
| normal control 7 | [['ben', 0, 4, 'short_rest']] | [['ben', 0, 4, 'short_rest']] | Passed |
| normal control 8 | [['ana', 3, 6, 'short_rest']] | [['ana', 3, 6, 'short_rest']] | Passed |
SHA-256 / 71862324394abced47a37e5a2eef6a4ff2ff6da955baab013474538dc3fe31a7
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 8 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.
Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.
Member access is invitation-based. Sign in with your invited account to inspect the repair.
Sign in to the archive ↗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:51:58.841219+00:00.
Case digest / 1af8323aa5de2d58fdec1112a9afadeae15b5c0561954d30aa5f12e4b4544ac2