{"abstract":"The same worker can take several offers beyond the 12-hour maximum.","category":"Shift rostering labor rules","checks":8,"contract":"ledger: worker -> [overtime minutes charged, seniority rank (1 most senior), minutes already worked today]; offers: [minutes, workers who will refuse]. For each offer, candidates are ordered by charged overtime then seniority rank. Workers who would exceed 720 minutes today are skipped without charge; refusers are charged the offered minutes; the first remaining worker takes it and is charged and credited today. Return [taker per offer (or None), charged minutes by worker].","evaluation_group":"w2-shift-rostering-labor-rules-overtime-equalization-offers","failed_approach":"Overwriting the daily total with the offer forgets earlier hours.","family":"w2-shift-rostering-labor-rules-overtime-equalization-offers-daily-minutes-credit","id":"FA-94336","implementations":{"attempt":{"sha256":"e8f13c1a555228c6aca7a4e556b63ce51cf746890113fcfcb2f7e71bbd44d77a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ledger, offers):\n    led = {w: list(v) for w, v in ledger.items()}\n    result = []\n    for minutes, refusers in offers:\n        cands = sorted(led, key=lambda w: (led[w][0], led[w][1]))\n        taker = None\n        for w in cands:\n            if led[w][2] + minutes > 720:\n                continue\n            if w in refusers:\n                led[w][0] += minutes\n                continue\n            taker = w\n            break\n        if taker is not None:\n            led[taker][0] += minutes\n            led[taker][2] = minutes\n        result.append(taker)\n    return [result, {w: led[w][0] for w in sorted(led)}]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: daily minutes credit 1',\n   [{'p': [120, 1, 240], 'r': [0, 2, 480], 'q': [60, 3, 240], 's': [60, 4, 480]},\n    [[60, []], [240, ['q', 'r']]]],\n   [['r', 's'], {'p': 120, 'q': 300, 'r': 60, 's': 300}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [0, 1, 600], 'p': [0, 2, 660]}, [[60, ['q']], [60, ['q', 'p']]]],\n   [['p', None], {'p': 60, 'q': 120}]),\n  ('partial repair guard 3',\n   [{'p': [0, 1, 660], 'q': [120, 2, 480]}, [[60, []], [60, ['p', 'q']], [240, []], [240, ['q']]]],\n   [['p', None, 'q', None], {'p': 60, 'q': 420}]),\n  ('normal control 4',\n   [{'q': [120, 1, 480], 'r': [120, 2, 480], 'p': [120, 3, 240]},\n    [[240, ['q']], [60, ['q', 'r']], [60, ['q']], [240, ['q']]]],\n   [['r', 'p', 'p', 'p'], {'p': 480, 'q': 360, 'r': 360}]),\n  ('normal control 5',\n   [{'r': [240, 1, 480], 'p': [240, 2, 480], 'q': [120, 3, 480]}, [[120, ['p']], [60, ['p']]]],\n   [['q', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('normal control 6',\n   [{'p': [0, 1, 480], 'q': [60, 2, 600]}, [[240, []], [240, ['p', 'q']], [240, []], [60, []]]],\n   [['p', None, None, 'q'], {'p': 240, 'q': 120}]),\n  ('normal control 7',\n   [{'r': [120, 1, 480], 'p': [240, 2, 0], 'q': [0, 3, 240], 's': [60, 4, 240]}, [[60, []]]],\n   [['q'], {'p': 240, 'q': 60, 'r': 120, 's': 60}]),\n  ('normal control 8',\n   [{'r': [120, 1, 660], 'q': [120, 2, 240], 'p': [120, 3, 0]}, [[240, ['p']], [60, []], [240, ['r', 'p']]]],\n   [['q', 'r', 'q'], {'p': 360, 'q': 600, 'r': 180}])],\n [('regression: daily minutes credit 1',\n   [{'q': [120, 1, 600], 'p': [240, 2, 660]}, [[120, ['q']], [60, []], [120, []], [240, []]]],\n   [[None, 'q', None, None], {'p': 240, 'q': 300}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [0, 1, 600], 'r': [0, 2, 0], 's': [0, 3, 240], 'p': [60, 4, 600]},\n    [[240, []], [240, ['s']], [60, ['r']], [120, ['r', 's']]]],\n   [['r', 'r', 'q', 'p'], {'p': 180, 'q': 60, 'r': 480, 's': 240}]),\n  ('partial repair guard 3',\n   [{'r': [0, 1, 600], 'p': [120, 2, 660], 'q': [0, 3, 660]},\n    [[60, ['p', 'r']], [120, ['p', 'r']], [60, ['r', 'p']]]],\n   [['q', None, None], {'p': 180, 'q': 60, 'r': 240}]),\n  ('normal control 4', [{'q': [120, 1, 660], 'p': [240, 2, 0]}, [[60, []]]], [['q'], {'p': 240, 'q': 180}]),\n  ('normal control 5', [{'p': [120, 1, 600], 'q': [120, 2, 480]}, [[120, []], [240, ['q']], [240, []]]],\n   [['p', None, 'q'], {'p': 240, 'q': 600}]),\n  ('normal control 6',\n   [{'q': [120, 1, 600], 'r': [0, 2, 660], 'p': [60, 3, 0]}, [[60, ['p']], [60, ['q']], [120, ['q', 'r']]]],\n   [['r', 'p', 'p'], {'p': 240, 'q': 240, 'r': 60}]),\n  ('normal control 7',\n   [{'q': [240, 1, 0], 'p': [120, 2, 660]}, [[240, []], [240, []], [240, ['q']], [60, ['p', 'q']]]],\n   [['q', 'q', None, None], {'p': 180, 'q': 1020}]),\n  ('normal control 8', [{'r': [0, 1, 0], 'p': [120, 2, 240], 'q': [60, 3, 600]}, [[240, []]]],\n   [['r'], {'p': 120, 'q': 60, 'r': 240}])],\n [('regression: daily minutes credit 1',\n   [{'p': [120, 1, 0], 'q': [120, 2, 600], 'r': [120, 3, 480]},\n    [[240, ['q']], [240, ['p']], [240, []], [240, ['q', 'p']]]],\n   [['p', 'r', 'p', None], {'p': 840, 'q': 120, 'r': 360}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [120, 1, 600], 'p': [240, 2, 0]}, [[120, []], [120, ['p', 'q']], [240, ['q', 'p']], [60, ['q']]]],\n   [['q', None, None, 'p'], {'p': 660, 'q': 240}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 600], 'p': [0, 2, 600]}, [[120, []], [240, ['p', 'q']], [60, ['q', 'p']], [120, ['q']]]],\n   [['p', None, None, None], {'p': 120, 'q': 300}]),\n  ('normal control 4',\n   [{'q': [240, 1, 240], 'p': [120, 2, 660], 'r': [60, 3, 660], 's': [0, 4, 480]}, [[240, ['q']]]],\n   [['s'], {'p': 120, 'q': 240, 'r': 60, 's': 240}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 's': [240, 2, 600], 'r': [0, 3, 240], 'p': [0, 4, 480]}, [[240, ['r']]]],\n   [['p'], {'p': 240, 'q': 120, 'r': 240, 's': 240}]),\n  ('normal control 6',\n   [{'r': [240, 1, 660], 'p': [60, 2, 600], 'q': [60, 3, 480]}, [[120, ['p']], [240, ['r']], [60, []]]],\n   [['q', None, 'p'], {'p': 240, 'q': 180, 'r': 240}]),\n  ('normal control 7',\n   [{'q': [0, 1, 660], 's': [120, 2, 480], 'r': [120, 3, 480], 'p': [0, 4, 480]}, [[120, ['q']]]],\n   [['p'], {'p': 120, 'q': 0, 'r': 120, 's': 120}]),\n  ('normal control 8',\n   [{'q': [120, 1, 0], 'r': [0, 2, 660], 's': [120, 3, 480], 'p': [120, 4, 0]},\n    [[240, []], [120, ['q', 'r']]]],\n   [['q', 's'], {'p': 120, 'q': 360, 'r': 0, 's': 240}])],\n [('regression: daily minutes credit 1',\n   [{'q': [0, 1, 480], 'p': [120, 2, 660]}, [[240, []], [240, ['q', 'p']]]],\n   [['q', None], {'p': 120, 'q': 240}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [120, 1, 600], 'r': [120, 2, 600], 'p': [60, 3, 600], 's': [240, 4, 660]},\n    [[120, ['r', 'q']], [120, ['q', 'p']], [60, ['p']], [60, ['r', 'q']]]],\n   [['p', 'r', 'q', 's'], {'p': 180, 'q': 300, 'r': 240, 's': 300}]),\n  ('partial repair guard 3',\n   [{'r': [0, 1, 480], 'p': [120, 2, 480], 'q': [0, 3, 480]},\n    [[240, []], [60, ['p']], [120, ['r', 'q']], [120, ['p', 'q']]]],\n   [['r', 'q', 'p', None], {'p': 360, 'q': 300, 'r': 240}]),\n  ('normal control 4',\n   [{'r': [240, 1, 480], 'q': [120, 2, 0], 'p': [240, 3, 480], 's': [240, 4, 600]},\n    [[120, []], [240, ['r', 's']], [60, []], [120, ['r']]]],\n   [['q', 'q', 'p', 's'], {'p': 300, 'q': 480, 'r': 480, 's': 360}]),\n  ('normal control 5',\n   [{'q': [120, 1, 600], 'r': [60, 2, 240], 'p': [60, 3, 0], 's': [240, 4, 660]},\n    [[120, []], [60, ['q']], [240, ['s', 'q']], [120, ['p', 's']]]],\n   [['r', 'p', 'p', 'q'], {'p': 360, 'q': 240, 'r': 180, 's': 240}]),\n  ('normal control 6',\n   [{'p': [120, 1, 660], 'q': [120, 2, 660], 'r': [120, 3, 240], 's': [120, 4, 0]},\n    [[60, ['r']], [60, ['p', 'r']], [60, []], [240, []]]],\n   [['p', 'q', 'r', 's'], {'p': 180, 'q': 180, 'r': 180, 's': 360}]),\n  ('normal control 7',\n   [{'q': [0, 1, 0], 's': [60, 2, 660], 'p': [60, 3, 0], 'r': [240, 4, 660]},\n    [[240, []], [240, []], [120, ['r']], [120, ['s']]]],\n   [['q', 'p', 'q', 'p'], {'p': 420, 'q': 360, 'r': 240, 's': 60}]),\n  ('normal control 8', [{'q': [240, 1, 480], 'p': [60, 2, 240]}, [[60, []], [60, ['q', 'p']]]],\n   [['p', None], {'p': 180, 'q': 300}])],\n [('regression: daily minutes credit 1',\n   [{'p': [0, 1, 660], 'q': [120, 2, 480]}, [[60, []], [60, ['p', 'q']], [240, []], [240, ['q']]]],\n   [['p', None, 'q', None], {'p': 60, 'q': 420}]),\n  ('regression variant: daily minutes credit 2',\n   [{'p': [240, 1, 240], 'r': [240, 2, 240], 'q': [0, 3, 480]},\n    [[120, []], [120, ['p']], [60, ['p']], [60, ['r']]]],\n   [['q', 'q', 'r', 'p'], {'p': 360, 'q': 240, 'r': 300}]),\n  ('partial repair guard 3',\n   [{'p': [0, 1, 0], 'r': [0, 2, 600], 'q': [240, 3, 0]}, [[240, ['q', 'r']], [60, []], [60, []], [60, []]]],\n   [['p', 'r', 'r', 'p'], {'p': 300, 'q': 240, 'r': 120}]),\n  ('normal control 4',\n   [{'p': [0, 1, 600], 'r': [120, 2, 240], 'q': [0, 3, 480]}, [[240, []], [240, ['p']], [60, []]]],\n   [['q', 'r', 'p'], {'p': 60, 'q': 240, 'r': 360}]),\n  ('normal control 5',\n   [{'p': [120, 1, 0], 'q': [120, 2, 240]}, [[60, []], [120, []], [120, ['q', 'p']], [240, ['q', 'p']]]],\n   [['p', 'q', None, None], {'p': 540, 'q': 600}]),\n  ('normal control 6',\n   [{'r': [60, 1, 480], 'q': [60, 2, 660], 'p': [240, 3, 600]}, [[240, ['r']], [120, []]]],\n   [[None, 'p'], {'p': 360, 'q': 60, 'r': 300}]),\n  ('normal control 7', [{'q': [0, 1, 240], 'r': [120, 2, 660], 'p': [120, 3, 0]}, [[60, []]]],\n   [['q'], {'p': 120, 'q': 60, 'r': 120}]),\n  ('normal control 8', [{'q': [120, 1, 600], 'p': [60, 2, 0]}, [[60, []], [240, []]]],\n   [['p', 'p'], {'p': 360, 'q': 120}])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"fd7bd0ef6a3db4793cfde88f9b2905314970b27b9d5082b262b43b52e8da3461","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ledger, offers):\n    led = {w: list(v) for w, v in ledger.items()}\n    result = []\n    for minutes, refusers in offers:\n        cands = sorted(led, key=lambda w: (led[w][0], led[w][1]))\n        taker = None\n        for w in cands:\n            if led[w][2] + minutes > 720:\n                continue\n            if w in refusers:\n                led[w][0] += minutes\n                continue\n            taker = w\n            break\n        if taker is not None:\n            led[taker][0] += minutes\n        result.append(taker)\n    return [result, {w: led[w][0] for w in sorted(led)}]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: daily minutes credit 1',\n   [{'p': [120, 1, 240], 'r': [0, 2, 480], 'q': [60, 3, 240], 's': [60, 4, 480]},\n    [[60, []], [240, ['q', 'r']]]],\n   [['r', 's'], {'p': 120, 'q': 300, 'r': 60, 's': 300}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [0, 1, 600], 'p': [0, 2, 660]}, [[60, ['q']], [60, ['q', 'p']]]],\n   [['p', None], {'p': 60, 'q': 120}]),\n  ('partial repair guard 3',\n   [{'p': [0, 1, 660], 'q': [120, 2, 480]}, [[60, []], [60, ['p', 'q']], [240, []], [240, ['q']]]],\n   [['p', None, 'q', None], {'p': 60, 'q': 420}]),\n  ('normal control 4',\n   [{'q': [120, 1, 480], 'r': [120, 2, 480], 'p': [120, 3, 240]},\n    [[240, ['q']], [60, ['q', 'r']], [60, ['q']], [240, ['q']]]],\n   [['r', 'p', 'p', 'p'], {'p': 480, 'q': 360, 'r': 360}]),\n  ('normal control 5',\n   [{'r': [240, 1, 480], 'p': [240, 2, 480], 'q': [120, 3, 480]}, [[120, ['p']], [60, ['p']]]],\n   [['q', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('normal control 6',\n   [{'p': [0, 1, 480], 'q': [60, 2, 600]}, [[240, []], [240, ['p', 'q']], [240, []], [60, []]]],\n   [['p', None, None, 'q'], {'p': 240, 'q': 120}]),\n  ('normal control 7',\n   [{'r': [120, 1, 480], 'p': [240, 2, 0], 'q': [0, 3, 240], 's': [60, 4, 240]}, [[60, []]]],\n   [['q'], {'p': 240, 'q': 60, 'r': 120, 's': 60}]),\n  ('normal control 8',\n   [{'r': [120, 1, 660], 'q': [120, 2, 240], 'p': [120, 3, 0]}, [[240, ['p']], [60, []], [240, ['r', 'p']]]],\n   [['q', 'r', 'q'], {'p': 360, 'q': 600, 'r': 180}])],\n [('regression: daily minutes credit 1',\n   [{'q': [120, 1, 600], 'p': [240, 2, 660]}, [[120, ['q']], [60, []], [120, []], [240, []]]],\n   [[None, 'q', None, None], {'p': 240, 'q': 300}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [0, 1, 600], 'r': [0, 2, 0], 's': [0, 3, 240], 'p': [60, 4, 600]},\n    [[240, []], [240, ['s']], [60, ['r']], [120, ['r', 's']]]],\n   [['r', 'r', 'q', 'p'], {'p': 180, 'q': 60, 'r': 480, 's': 240}]),\n  ('partial repair guard 3',\n   [{'r': [0, 1, 600], 'p': [120, 2, 660], 'q': [0, 3, 660]},\n    [[60, ['p', 'r']], [120, ['p', 'r']], [60, ['r', 'p']]]],\n   [['q', None, None], {'p': 180, 'q': 60, 'r': 240}]),\n  ('normal control 4', [{'q': [120, 1, 660], 'p': [240, 2, 0]}, [[60, []]]], [['q'], {'p': 240, 'q': 180}]),\n  ('normal control 5', [{'p': [120, 1, 600], 'q': [120, 2, 480]}, [[120, []], [240, ['q']], [240, []]]],\n   [['p', None, 'q'], {'p': 240, 'q': 600}]),\n  ('normal control 6',\n   [{'q': [120, 1, 600], 'r': [0, 2, 660], 'p': [60, 3, 0]}, [[60, ['p']], [60, ['q']], [120, ['q', 'r']]]],\n   [['r', 'p', 'p'], {'p': 240, 'q': 240, 'r': 60}]),\n  ('normal control 7',\n   [{'q': [240, 1, 0], 'p': [120, 2, 660]}, [[240, []], [240, []], [240, ['q']], [60, ['p', 'q']]]],\n   [['q', 'q', None, None], {'p': 180, 'q': 1020}]),\n  ('normal control 8', [{'r': [0, 1, 0], 'p': [120, 2, 240], 'q': [60, 3, 600]}, [[240, []]]],\n   [['r'], {'p': 120, 'q': 60, 'r': 240}])],\n [('regression: daily minutes credit 1',\n   [{'p': [120, 1, 0], 'q': [120, 2, 600], 'r': [120, 3, 480]},\n    [[240, ['q']], [240, ['p']], [240, []], [240, ['q', 'p']]]],\n   [['p', 'r', 'p', None], {'p': 840, 'q': 120, 'r': 360}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [120, 1, 600], 'p': [240, 2, 0]}, [[120, []], [120, ['p', 'q']], [240, ['q', 'p']], [60, ['q']]]],\n   [['q', None, None, 'p'], {'p': 660, 'q': 240}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 600], 'p': [0, 2, 600]}, [[120, []], [240, ['p', 'q']], [60, ['q', 'p']], [120, ['q']]]],\n   [['p', None, None, None], {'p': 120, 'q': 300}]),\n  ('normal control 4',\n   [{'q': [240, 1, 240], 'p': [120, 2, 660], 'r': [60, 3, 660], 's': [0, 4, 480]}, [[240, ['q']]]],\n   [['s'], {'p': 120, 'q': 240, 'r': 60, 's': 240}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 's': [240, 2, 600], 'r': [0, 3, 240], 'p': [0, 4, 480]}, [[240, ['r']]]],\n   [['p'], {'p': 240, 'q': 120, 'r': 240, 's': 240}]),\n  ('normal control 6',\n   [{'r': [240, 1, 660], 'p': [60, 2, 600], 'q': [60, 3, 480]}, [[120, ['p']], [240, ['r']], [60, []]]],\n   [['q', None, 'p'], {'p': 240, 'q': 180, 'r': 240}]),\n  ('normal control 7',\n   [{'q': [0, 1, 660], 's': [120, 2, 480], 'r': [120, 3, 480], 'p': [0, 4, 480]}, [[120, ['q']]]],\n   [['p'], {'p': 120, 'q': 0, 'r': 120, 's': 120}]),\n  ('normal control 8',\n   [{'q': [120, 1, 0], 'r': [0, 2, 660], 's': [120, 3, 480], 'p': [120, 4, 0]},\n    [[240, []], [120, ['q', 'r']]]],\n   [['q', 's'], {'p': 120, 'q': 360, 'r': 0, 's': 240}])],\n [('regression: daily minutes credit 1',\n   [{'q': [0, 1, 480], 'p': [120, 2, 660]}, [[240, []], [240, ['q', 'p']]]],\n   [['q', None], {'p': 120, 'q': 240}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [120, 1, 600], 'r': [120, 2, 600], 'p': [60, 3, 600], 's': [240, 4, 660]},\n    [[120, ['r', 'q']], [120, ['q', 'p']], [60, ['p']], [60, ['r', 'q']]]],\n   [['p', 'r', 'q', 's'], {'p': 180, 'q': 300, 'r': 240, 's': 300}]),\n  ('partial repair guard 3',\n   [{'r': [0, 1, 480], 'p': [120, 2, 480], 'q': [0, 3, 480]},\n    [[240, []], [60, ['p']], [120, ['r', 'q']], [120, ['p', 'q']]]],\n   [['r', 'q', 'p', None], {'p': 360, 'q': 300, 'r': 240}]),\n  ('normal control 4',\n   [{'r': [240, 1, 480], 'q': [120, 2, 0], 'p': [240, 3, 480], 's': [240, 4, 600]},\n    [[120, []], [240, ['r', 's']], [60, []], [120, ['r']]]],\n   [['q', 'q', 'p', 's'], {'p': 300, 'q': 480, 'r': 480, 's': 360}]),\n  ('normal control 5',\n   [{'q': [120, 1, 600], 'r': [60, 2, 240], 'p': [60, 3, 0], 's': [240, 4, 660]},\n    [[120, []], [60, ['q']], [240, ['s', 'q']], [120, ['p', 's']]]],\n   [['r', 'p', 'p', 'q'], {'p': 360, 'q': 240, 'r': 180, 's': 240}]),\n  ('normal control 6',\n   [{'p': [120, 1, 660], 'q': [120, 2, 660], 'r': [120, 3, 240], 's': [120, 4, 0]},\n    [[60, ['r']], [60, ['p', 'r']], [60, []], [240, []]]],\n   [['p', 'q', 'r', 's'], {'p': 180, 'q': 180, 'r': 180, 's': 360}]),\n  ('normal control 7',\n   [{'q': [0, 1, 0], 's': [60, 2, 660], 'p': [60, 3, 0], 'r': [240, 4, 660]},\n    [[240, []], [240, []], [120, ['r']], [120, ['s']]]],\n   [['q', 'p', 'q', 'p'], {'p': 420, 'q': 360, 'r': 240, 's': 60}]),\n  ('normal control 8', [{'q': [240, 1, 480], 'p': [60, 2, 240]}, [[60, []], [60, ['q', 'p']]]],\n   [['p', None], {'p': 180, 'q': 300}])],\n [('regression: daily minutes credit 1',\n   [{'p': [0, 1, 660], 'q': [120, 2, 480]}, [[60, []], [60, ['p', 'q']], [240, []], [240, ['q']]]],\n   [['p', None, 'q', None], {'p': 60, 'q': 420}]),\n  ('regression variant: daily minutes credit 2',\n   [{'p': [240, 1, 240], 'r': [240, 2, 240], 'q': [0, 3, 480]},\n    [[120, []], [120, ['p']], [60, ['p']], [60, ['r']]]],\n   [['q', 'q', 'r', 'p'], {'p': 360, 'q': 240, 'r': 300}]),\n  ('partial repair guard 3',\n   [{'p': [0, 1, 0], 'r': [0, 2, 600], 'q': [240, 3, 0]}, [[240, ['q', 'r']], [60, []], [60, []], [60, []]]],\n   [['p', 'r', 'r', 'p'], {'p': 300, 'q': 240, 'r': 120}]),\n  ('normal control 4',\n   [{'p': [0, 1, 600], 'r': [120, 2, 240], 'q': [0, 3, 480]}, [[240, []], [240, ['p']], [60, []]]],\n   [['q', 'r', 'p'], {'p': 60, 'q': 240, 'r': 360}]),\n  ('normal control 5',\n   [{'p': [120, 1, 0], 'q': [120, 2, 240]}, [[60, []], [120, []], [120, ['q', 'p']], [240, ['q', 'p']]]],\n   [['p', 'q', None, None], {'p': 540, 'q': 600}]),\n  ('normal control 6',\n   [{'r': [60, 1, 480], 'q': [60, 2, 660], 'p': [240, 3, 600]}, [[240, ['r']], [120, []]]],\n   [[None, 'p'], {'p': 360, 'q': 60, 'r': 300}]),\n  ('normal control 7', [{'q': [0, 1, 240], 'r': [120, 2, 660], 'p': [120, 3, 0]}, [[60, []]]],\n   [['q'], {'p': 120, 'q': 60, 'r': 120}]),\n  ('normal control 8', [{'q': [120, 1, 600], 'p': [60, 2, 0]}, [[60, []], [240, []]]],\n   [['p', 'p'], {'p': 360, 'q': 120}])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"6a27c869738adcf5049cc687721f3684b552cc88f6430dd543b5d530f785924b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(ledger, offers):\n    led = {w: list(v) for w, v in ledger.items()}\n    result = []\n    for minutes, refusers in offers:\n        cands = sorted(led, key=lambda w: (led[w][0], led[w][1]))\n        taker = None\n        for w in cands:\n            if led[w][2] + minutes > 720:\n                continue\n            if w in refusers:\n                led[w][0] += minutes\n                continue\n            taker = w\n            break\n        if taker is not None:\n            led[taker][0] += minutes\n            led[taker][2] += minutes\n        result.append(taker)\n    return [result, {w: led[w][0] for w in sorted(led)}]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: daily minutes credit 1',\n   [{'p': [120, 1, 240], 'r': [0, 2, 480], 'q': [60, 3, 240], 's': [60, 4, 480]},\n    [[60, []], [240, ['q', 'r']]]],\n   [['r', 's'], {'p': 120, 'q': 300, 'r': 60, 's': 300}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [0, 1, 600], 'p': [0, 2, 660]}, [[60, ['q']], [60, ['q', 'p']]]],\n   [['p', None], {'p': 60, 'q': 120}]),\n  ('partial repair guard 3',\n   [{'p': [0, 1, 660], 'q': [120, 2, 480]}, [[60, []], [60, ['p', 'q']], [240, []], [240, ['q']]]],\n   [['p', None, 'q', None], {'p': 60, 'q': 420}]),\n  ('normal control 4',\n   [{'q': [120, 1, 480], 'r': [120, 2, 480], 'p': [120, 3, 240]},\n    [[240, ['q']], [60, ['q', 'r']], [60, ['q']], [240, ['q']]]],\n   [['r', 'p', 'p', 'p'], {'p': 480, 'q': 360, 'r': 360}]),\n  ('normal control 5',\n   [{'r': [240, 1, 480], 'p': [240, 2, 480], 'q': [120, 3, 480]}, [[120, ['p']], [60, ['p']]]],\n   [['q', 'r'], {'p': 240, 'q': 240, 'r': 300}]),\n  ('normal control 6',\n   [{'p': [0, 1, 480], 'q': [60, 2, 600]}, [[240, []], [240, ['p', 'q']], [240, []], [60, []]]],\n   [['p', None, None, 'q'], {'p': 240, 'q': 120}]),\n  ('normal control 7',\n   [{'r': [120, 1, 480], 'p': [240, 2, 0], 'q': [0, 3, 240], 's': [60, 4, 240]}, [[60, []]]],\n   [['q'], {'p': 240, 'q': 60, 'r': 120, 's': 60}]),\n  ('normal control 8',\n   [{'r': [120, 1, 660], 'q': [120, 2, 240], 'p': [120, 3, 0]}, [[240, ['p']], [60, []], [240, ['r', 'p']]]],\n   [['q', 'r', 'q'], {'p': 360, 'q': 600, 'r': 180}])],\n [('regression: daily minutes credit 1',\n   [{'q': [120, 1, 600], 'p': [240, 2, 660]}, [[120, ['q']], [60, []], [120, []], [240, []]]],\n   [[None, 'q', None, None], {'p': 240, 'q': 300}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [0, 1, 600], 'r': [0, 2, 0], 's': [0, 3, 240], 'p': [60, 4, 600]},\n    [[240, []], [240, ['s']], [60, ['r']], [120, ['r', 's']]]],\n   [['r', 'r', 'q', 'p'], {'p': 180, 'q': 60, 'r': 480, 's': 240}]),\n  ('partial repair guard 3',\n   [{'r': [0, 1, 600], 'p': [120, 2, 660], 'q': [0, 3, 660]},\n    [[60, ['p', 'r']], [120, ['p', 'r']], [60, ['r', 'p']]]],\n   [['q', None, None], {'p': 180, 'q': 60, 'r': 240}]),\n  ('normal control 4', [{'q': [120, 1, 660], 'p': [240, 2, 0]}, [[60, []]]], [['q'], {'p': 240, 'q': 180}]),\n  ('normal control 5', [{'p': [120, 1, 600], 'q': [120, 2, 480]}, [[120, []], [240, ['q']], [240, []]]],\n   [['p', None, 'q'], {'p': 240, 'q': 600}]),\n  ('normal control 6',\n   [{'q': [120, 1, 600], 'r': [0, 2, 660], 'p': [60, 3, 0]}, [[60, ['p']], [60, ['q']], [120, ['q', 'r']]]],\n   [['r', 'p', 'p'], {'p': 240, 'q': 240, 'r': 60}]),\n  ('normal control 7',\n   [{'q': [240, 1, 0], 'p': [120, 2, 660]}, [[240, []], [240, []], [240, ['q']], [60, ['p', 'q']]]],\n   [['q', 'q', None, None], {'p': 180, 'q': 1020}]),\n  ('normal control 8', [{'r': [0, 1, 0], 'p': [120, 2, 240], 'q': [60, 3, 600]}, [[240, []]]],\n   [['r'], {'p': 120, 'q': 60, 'r': 240}])],\n [('regression: daily minutes credit 1',\n   [{'p': [120, 1, 0], 'q': [120, 2, 600], 'r': [120, 3, 480]},\n    [[240, ['q']], [240, ['p']], [240, []], [240, ['q', 'p']]]],\n   [['p', 'r', 'p', None], {'p': 840, 'q': 120, 'r': 360}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [120, 1, 600], 'p': [240, 2, 0]}, [[120, []], [120, ['p', 'q']], [240, ['q', 'p']], [60, ['q']]]],\n   [['q', None, None, 'p'], {'p': 660, 'q': 240}]),\n  ('partial repair guard 3',\n   [{'q': [120, 1, 600], 'p': [0, 2, 600]}, [[120, []], [240, ['p', 'q']], [60, ['q', 'p']], [120, ['q']]]],\n   [['p', None, None, None], {'p': 120, 'q': 300}]),\n  ('normal control 4',\n   [{'q': [240, 1, 240], 'p': [120, 2, 660], 'r': [60, 3, 660], 's': [0, 4, 480]}, [[240, ['q']]]],\n   [['s'], {'p': 120, 'q': 240, 'r': 60, 's': 240}]),\n  ('normal control 5',\n   [{'q': [120, 1, 240], 's': [240, 2, 600], 'r': [0, 3, 240], 'p': [0, 4, 480]}, [[240, ['r']]]],\n   [['p'], {'p': 240, 'q': 120, 'r': 240, 's': 240}]),\n  ('normal control 6',\n   [{'r': [240, 1, 660], 'p': [60, 2, 600], 'q': [60, 3, 480]}, [[120, ['p']], [240, ['r']], [60, []]]],\n   [['q', None, 'p'], {'p': 240, 'q': 180, 'r': 240}]),\n  ('normal control 7',\n   [{'q': [0, 1, 660], 's': [120, 2, 480], 'r': [120, 3, 480], 'p': [0, 4, 480]}, [[120, ['q']]]],\n   [['p'], {'p': 120, 'q': 0, 'r': 120, 's': 120}]),\n  ('normal control 8',\n   [{'q': [120, 1, 0], 'r': [0, 2, 660], 's': [120, 3, 480], 'p': [120, 4, 0]},\n    [[240, []], [120, ['q', 'r']]]],\n   [['q', 's'], {'p': 120, 'q': 360, 'r': 0, 's': 240}])],\n [('regression: daily minutes credit 1',\n   [{'q': [0, 1, 480], 'p': [120, 2, 660]}, [[240, []], [240, ['q', 'p']]]],\n   [['q', None], {'p': 120, 'q': 240}]),\n  ('regression variant: daily minutes credit 2',\n   [{'q': [120, 1, 600], 'r': [120, 2, 600], 'p': [60, 3, 600], 's': [240, 4, 660]},\n    [[120, ['r', 'q']], [120, ['q', 'p']], [60, ['p']], [60, ['r', 'q']]]],\n   [['p', 'r', 'q', 's'], {'p': 180, 'q': 300, 'r': 240, 's': 300}]),\n  ('partial repair guard 3',\n   [{'r': [0, 1, 480], 'p': [120, 2, 480], 'q': [0, 3, 480]},\n    [[240, []], [60, ['p']], [120, ['r', 'q']], [120, ['p', 'q']]]],\n   [['r', 'q', 'p', None], {'p': 360, 'q': 300, 'r': 240}]),\n  ('normal control 4',\n   [{'r': [240, 1, 480], 'q': [120, 2, 0], 'p': [240, 3, 480], 's': [240, 4, 600]},\n    [[120, []], [240, ['r', 's']], [60, []], [120, ['r']]]],\n   [['q', 'q', 'p', 's'], {'p': 300, 'q': 480, 'r': 480, 's': 360}]),\n  ('normal control 5',\n   [{'q': [120, 1, 600], 'r': [60, 2, 240], 'p': [60, 3, 0], 's': [240, 4, 660]},\n    [[120, []], [60, ['q']], [240, ['s', 'q']], [120, ['p', 's']]]],\n   [['r', 'p', 'p', 'q'], {'p': 360, 'q': 240, 'r': 180, 's': 240}]),\n  ('normal control 6',\n   [{'p': [120, 1, 660], 'q': [120, 2, 660], 'r': [120, 3, 240], 's': [120, 4, 0]},\n    [[60, ['r']], [60, ['p', 'r']], [60, []], [240, []]]],\n   [['p', 'q', 'r', 's'], {'p': 180, 'q': 180, 'r': 180, 's': 360}]),\n  ('normal control 7',\n   [{'q': [0, 1, 0], 's': [60, 2, 660], 'p': [60, 3, 0], 'r': [240, 4, 660]},\n    [[240, []], [240, []], [120, ['r']], [120, ['s']]]],\n   [['q', 'p', 'q', 'p'], {'p': 420, 'q': 360, 'r': 240, 's': 60}]),\n  ('normal control 8', [{'q': [240, 1, 480], 'p': [60, 2, 240]}, [[60, []], [60, ['q', 'p']]]],\n   [['p', None], {'p': 180, 'q': 300}])],\n [('regression: daily minutes credit 1',\n   [{'p': [0, 1, 660], 'q': [120, 2, 480]}, [[60, []], [60, ['p', 'q']], [240, []], [240, ['q']]]],\n   [['p', None, 'q', None], {'p': 60, 'q': 420}]),\n  ('regression variant: daily minutes credit 2',\n   [{'p': [240, 1, 240], 'r': [240, 2, 240], 'q': [0, 3, 480]},\n    [[120, []], [120, ['p']], [60, ['p']], [60, ['r']]]],\n   [['q', 'q', 'r', 'p'], {'p': 360, 'q': 240, 'r': 300}]),\n  ('partial repair guard 3',\n   [{'p': [0, 1, 0], 'r': [0, 2, 600], 'q': [240, 3, 0]}, [[240, ['q', 'r']], [60, []], [60, []], [60, []]]],\n   [['p', 'r', 'r', 'p'], {'p': 300, 'q': 240, 'r': 120}]),\n  ('normal control 4',\n   [{'p': [0, 1, 600], 'r': [120, 2, 240], 'q': [0, 3, 480]}, [[240, []], [240, ['p']], [60, []]]],\n   [['q', 'r', 'p'], {'p': 60, 'q': 240, 'r': 360}]),\n  ('normal control 5',\n   [{'p': [120, 1, 0], 'q': [120, 2, 240]}, [[60, []], [120, []], [120, ['q', 'p']], [240, ['q', 'p']]]],\n   [['p', 'q', None, None], {'p': 540, 'q': 600}]),\n  ('normal control 6',\n   [{'r': [60, 1, 480], 'q': [60, 2, 660], 'p': [240, 3, 600]}, [[240, ['r']], [120, []]]],\n   [[None, 'p'], {'p': 360, 'q': 60, 'r': 300}]),\n  ('normal control 7', [{'q': [0, 1, 240], 'r': [120, 2, 660], 'p': [120, 3, 0]}, [[60, []]]],\n   [['q'], {'p': 120, 'q': 60, 'r': 120}]),\n  ('normal control 8', [{'q': [120, 1, 600], 'p': [60, 2, 0]}, [[60, []], [240, []]]],\n   [['p', 'p'], {'p': 360, 'q': 120}])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-shift-rostering-labor-rules-overtime-equalization-offers-daily-minutes-credit","generated_at":"2026-09-29T14:52:03.367118+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Overtime equalization clauses require fair rotation of offers, including charging refusals.","repair":"Add accepted minutes to the taker's daily total.","root_cause":"Daily minutes are not updated after an acceptance.","sha256":"55206c3e1e3a720b8a40709eb59c51135b3b4dc5ad4a6cf45c88fc8d81d5d70e","title":"Accepted overtime not added to the day's worked minutes · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.333,"exit_code":1,"observations":[{"actual":[["r","s"],{"p":120,"q":300,"r":300,"s":300}],"check":"regression: daily minutes credit 1","expected":[["r","s"],{"p":120,"q":300,"r":60,"s":300}],"passed":false},{"actual":[["p",null],{"p":120,"q":120}],"check":"regression variant: daily minutes credit 2","expected":[["p",null],{"p":60,"q":120}],"passed":false},{"actual":[["p",null,"p","p"],{"p":600,"q":420}],"check":"partial repair guard 3","expected":[["p",null,"q",null],{"p":60,"q":420}],"passed":false},{"actual":[["r","p","p","p"],{"p":480,"q":360,"r":360}],"check":"normal control 4","expected":[["r","p","p","p"],{"p":480,"q":360,"r":360}],"passed":true},{"actual":[["q","r"],{"p":240,"q":240,"r":300}],"check":"normal control 5","expected":[["q","r"],{"p":240,"q":240,"r":300}],"passed":true},{"actual":[["p",null,"p","q"],{"p":720,"q":120}],"check":"normal control 6","expected":[["p",null,null,"q"],{"p":240,"q":120}],"passed":false},{"actual":[["q"],{"p":240,"q":60,"r":120,"s":60}],"check":"normal control 7","expected":[["q"],{"p":240,"q":60,"r":120,"s":60}],"passed":true},{"actual":[["q","r","q"],{"p":360,"q":600,"r":420}],"check":"normal control 8","expected":[["q","r","q"],{"p":360,"q":600,"r":180}],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: daily minutes credit 1\", \"actual\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 300, \"s\": 300}], \"expected\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 60, \"s\": 300}], \"passed\": false}, {\"check\": \"regression variant: daily minutes credit 2\", \"actual\": [[\"p\", null], {\"p\": 120, \"q\": 120}], \"expected\": [[\"p\", null], {\"p\": 60, \"q\": 120}], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"p\", null, \"p\", \"p\"], {\"p\": 600, \"q\": 420}], \"expected\": [[\"p\", null, \"q\", null], {\"p\": 60, \"q\": 420}], \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": [[\"r\", \"p\", \"p\", \"p\"], {\"p\": 480, \"q\": 360, \"r\": 360}], \"expected\": [[\"r\", \"p\", \"p\", \"p\"], {\"p\": 480, \"q\": 360, \"r\": 360}], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"expected\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"p\", null, \"p\", \"q\"], {\"p\": 720, \"q\": 120}], \"expected\": [[\"p\", null, null, \"q\"], {\"p\": 240, \"q\": 120}], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [[\"q\"], {\"p\": 240, \"q\": 60, \"r\": 120, \"s\": 60}], \"expected\": [[\"q\"], {\"p\": 240, \"q\": 60, \"r\": 120, \"s\": 60}], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"q\", \"r\", \"q\"], {\"p\": 360, \"q\": 600, \"r\": 420}], \"expected\": [[\"q\", \"r\", \"q\"], {\"p\": 360, \"q\": 600, \"r\": 180}], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.084,"exit_code":1,"observations":[{"actual":[["r","s"],{"p":120,"q":300,"r":300,"s":300}],"check":"regression: daily minutes credit 1","expected":[["r","s"],{"p":120,"q":300,"r":60,"s":300}],"passed":false},{"actual":[["p",null],{"p":120,"q":120}],"check":"regression variant: daily minutes credit 2","expected":[["p",null],{"p":60,"q":120}],"passed":false},{"actual":[["p",null,"q",null],{"p":120,"q":660}],"check":"partial repair guard 3","expected":[["p",null,"q",null],{"p":60,"q":420}],"passed":false},{"actual":[["r","p","p","p"],{"p":480,"q":360,"r":360}],"check":"normal control 4","expected":[["r","p","p","p"],{"p":480,"q":360,"r":360}],"passed":true},{"actual":[["q","r"],{"p":240,"q":240,"r":300}],"check":"normal control 5","expected":[["q","r"],{"p":240,"q":240,"r":300}],"passed":true},{"actual":[["p",null,"p","q"],{"p":720,"q":120}],"check":"normal control 6","expected":[["p",null,null,"q"],{"p":240,"q":120}],"passed":false},{"actual":[["q"],{"p":240,"q":60,"r":120,"s":60}],"check":"normal control 7","expected":[["q"],{"p":240,"q":60,"r":120,"s":60}],"passed":true},{"actual":[["q","r","q"],{"p":360,"q":600,"r":180}],"check":"normal control 8","expected":[["q","r","q"],{"p":360,"q":600,"r":180}],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: daily minutes credit 1\", \"actual\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 300, \"s\": 300}], \"expected\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 60, \"s\": 300}], \"passed\": false}, {\"check\": \"regression variant: daily minutes credit 2\", \"actual\": [[\"p\", null], {\"p\": 120, \"q\": 120}], \"expected\": [[\"p\", null], {\"p\": 60, \"q\": 120}], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"p\", null, \"q\", null], {\"p\": 120, \"q\": 660}], \"expected\": [[\"p\", null, \"q\", null], {\"p\": 60, \"q\": 420}], \"passed\": false}, {\"check\": \"normal control 4\", \"actual\": [[\"r\", \"p\", \"p\", \"p\"], {\"p\": 480, \"q\": 360, \"r\": 360}], \"expected\": [[\"r\", \"p\", \"p\", \"p\"], {\"p\": 480, \"q\": 360, \"r\": 360}], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"expected\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"p\", null, \"p\", \"q\"], {\"p\": 720, \"q\": 120}], \"expected\": [[\"p\", null, null, \"q\"], {\"p\": 240, \"q\": 120}], \"passed\": false}, {\"check\": \"normal control 7\", \"actual\": [[\"q\"], {\"p\": 240, \"q\": 60, \"r\": 120, \"s\": 60}], \"expected\": [[\"q\"], {\"p\": 240, \"q\": 60, \"r\": 120, \"s\": 60}], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"q\", \"r\", \"q\"], {\"p\": 360, \"q\": 600, \"r\": 180}], \"expected\": [[\"q\", \"r\", \"q\"], {\"p\": 360, \"q\": 600, \"r\": 180}], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.449,"exit_code":0,"observations":[{"actual":[["r","s"],{"p":120,"q":300,"r":60,"s":300}],"check":"regression: daily minutes credit 1","expected":[["r","s"],{"p":120,"q":300,"r":60,"s":300}],"passed":true},{"actual":[["p",null],{"p":60,"q":120}],"check":"regression variant: daily minutes credit 2","expected":[["p",null],{"p":60,"q":120}],"passed":true},{"actual":[["p",null,"q",null],{"p":60,"q":420}],"check":"partial repair guard 3","expected":[["p",null,"q",null],{"p":60,"q":420}],"passed":true},{"actual":[["r","p","p","p"],{"p":480,"q":360,"r":360}],"check":"normal control 4","expected":[["r","p","p","p"],{"p":480,"q":360,"r":360}],"passed":true},{"actual":[["q","r"],{"p":240,"q":240,"r":300}],"check":"normal control 5","expected":[["q","r"],{"p":240,"q":240,"r":300}],"passed":true},{"actual":[["p",null,null,"q"],{"p":240,"q":120}],"check":"normal control 6","expected":[["p",null,null,"q"],{"p":240,"q":120}],"passed":true},{"actual":[["q"],{"p":240,"q":60,"r":120,"s":60}],"check":"normal control 7","expected":[["q"],{"p":240,"q":60,"r":120,"s":60}],"passed":true},{"actual":[["q","r","q"],{"p":360,"q":600,"r":180}],"check":"normal control 8","expected":[["q","r","q"],{"p":360,"q":600,"r":180}],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: daily minutes credit 1\", \"actual\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 60, \"s\": 300}], \"expected\": [[\"r\", \"s\"], {\"p\": 120, \"q\": 300, \"r\": 60, \"s\": 300}], \"passed\": true}, {\"check\": \"regression variant: daily minutes credit 2\", \"actual\": [[\"p\", null], {\"p\": 60, \"q\": 120}], \"expected\": [[\"p\", null], {\"p\": 60, \"q\": 120}], \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": [[\"p\", null, \"q\", null], {\"p\": 60, \"q\": 420}], \"expected\": [[\"p\", null, \"q\", null], {\"p\": 60, \"q\": 420}], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [[\"r\", \"p\", \"p\", \"p\"], {\"p\": 480, \"q\": 360, \"r\": 360}], \"expected\": [[\"r\", \"p\", \"p\", \"p\"], {\"p\": 480, \"q\": 360, \"r\": 360}], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"expected\": [[\"q\", \"r\"], {\"p\": 240, \"q\": 240, \"r\": 300}], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[\"p\", null, null, \"q\"], {\"p\": 240, \"q\": 120}], \"expected\": [[\"p\", null, null, \"q\"], {\"p\": 240, \"q\": 120}], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[\"q\"], {\"p\": 240, \"q\": 60, \"r\": 120, \"s\": 60}], \"expected\": [[\"q\"], {\"p\": 240, \"q\": 60, \"r\": 120, \"s\": 60}], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[\"q\", \"r\", \"q\"], {\"p\": 360, \"q\": 600, \"r\": 180}], \"expected\": [[\"q\", \"r\", \"q\"], {\"p\": 360, \"q\": 600, \"r\": 180}], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}