{"abstract":"Slots staffed only by trainees appear fully covered.","category":"Shift rostering labor rules","checks":8,"contract":"Shifts [worker, role, start, end], a list of required headcount per slot and a slot length. A shift covers slot k only if it spans the whole slot [k*slot, (k+1)*slot). Coverage is counted in half-heads: trainees 1, staff and supervisors 2; a worker counts once per slot at their best role weight. Return [slot, have, need] (half-heads) for every understaffed slot.","evaluation_group":"w2-shift-rostering-labor-rules-slot-coverage-headcount","failed_approach":"Also halving supervisors undercounts qualified staff.","family":"w2-shift-rostering-labor-rules-slot-coverage-headcount-trainee-weight","id":"FA-94091","implementations":{"attempt":{"sha256":"7d3fc891bd62236efb12b18895374e114846af1e457a7425e7653d3cd7e4c5fd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(shifts, need, slot):\n    out = []\n    for k, req in enumerate(need):\n        a, b = k * slot, (k + 1) * slot\n        seen = {}\n        for w, role, s, e in shifts:\n            if s <= a and e >= b:\n                seen[w] = max(seen.get(w, 0), 1 if role != 'staff' else 2)\n        have = sum(seen.values())\n        if have < 2 * req:\n            out.append([k, have, 2 * req])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: trainee weight 1', [[['w1', 'supervisor', 0, 60], ['w2', 'trainee', 0, 60]], [2], 60],\n   [[0, 3, 4]]),\n  ('regression variant: trainee weight 2',\n   [[['w1', 'staff', 180, 270], ['w2', 'supervisor', 0, 180], ['w1', 'trainee', 60, 300],\n     ['w3', 'supervisor', 120, 210], ['w1', 'trainee', 60, 90], ['w2', 'supervisor', 180, 270]],\n    [2, 2, 2, 1], 60],\n   [[0, 2, 4], [1, 3, 4]]),\n  ('partial repair guard 3',\n   [[['w2', 'staff', 180, 240], ['w1', 'staff', 30, 90], ['w3', 'supervisor', 60, 240]], [2, 2, 0], 60],\n   [[0, 0, 4], [1, 2, 4]]),\n  ('boundary control 4', [[['w1', 'staff', 0, 120], ['w1', 'trainee', 0, 60]], [2, 1], 60], [[0, 2, 4]]),\n  ('normal control 5',\n   [[['w1', 'supervisor', 0, 120], ['w3', 'trainee', 120, 240], ['w1', 'staff', 60, 150],\n     ['w3', 'trainee', 0, 120], ['w2', 'supervisor', 60, 240], ['w1', 'staff', 60, 300],\n     ['w1', 'staff', 30, 60]],\n    [1, 3, 2, 1, 3], 60],\n   [[1, 5, 6], [4, 2, 6]]),\n  ('normal control 6',\n   [[['w2', 'staff', 60, 240], ['w1', 'staff', 90, 270], ['w2', 'supervisor', 30, 60],\n     ['w4', 'supervisor', 30, 60]],\n    [1, 1, 3, 3], 60],\n   [[0, 0, 2], [2, 4, 6], [3, 4, 6]]),\n  ('normal control 7',\n   [[['w3', 'staff', 30, 150], ['w3', 'trainee', 60, 150], ['w4', 'supervisor', 0, 30],\n     ['w1', 'staff', 90, 270], ['w1', 'trainee', 90, 330], ['w4', 'staff', 30, 90],\n     ['w1', 'supervisor', 180, 210]],\n    [1, 2, 0, 2], 60],\n   [[0, 0, 2], [1, 2, 4], [3, 2, 4]]),\n  ('normal control 8', [[['w3', 'trainee', 90, 120], ['w3', 'staff', 120, 210]], [1, 2, 3, 0, 3], 60],\n   [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]])],\n [('regression: trainee weight 1',\n   [[['w4', 'supervisor', 120, 360], ['w3', 'supervisor', 30, 270], ['w2', 'trainee', 120, 180],\n     ['w2', 'trainee', 0, 120], ['w2', 'trainee', 180, 420], ['w3', 'trainee', 30, 210]],\n    [2, 1, 3, 3], 60],\n   [[0, 1, 4], [2, 5, 6], [3, 5, 6]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'staff', 90, 270], ['w4', 'trainee', 90, 270], ['w1', 'staff', 180, 420],\n     ['w4', 'trainee', 90, 210], ['w1', 'supervisor', 180, 360], ['w3', 'staff', 60, 180],\n     ['w2', 'trainee', 180, 360]],\n    [0, 0, 2, 0, 3], 60],\n   [[4, 3, 6]]),\n  ('partial repair guard 3',\n   [[['w1', 'staff', 180, 270], ['w2', 'supervisor', 0, 180], ['w1', 'trainee', 60, 300],\n     ['w3', 'supervisor', 120, 210], ['w1', 'trainee', 60, 90], ['w2', 'supervisor', 180, 270]],\n    [2, 2, 2, 1], 60],\n   [[0, 2, 4], [1, 3, 4]]),\n  ('boundary control 4', [[['w1', 'staff', 30, 120]], [1, 1], 60], [[0, 0, 2]]),\n  ('normal control 5',\n   [[['w3', 'staff', 0, 180], ['w1', 'staff', 60, 180], ['w1', 'trainee', 30, 270],\n     ['w3', 'supervisor', 180, 240], ['w2', 'staff', 60, 180], ['w1', 'staff', 30, 120],\n     ['w4', 'trainee', 0, 180]],\n    [0, 2, 2, 0], 60],\n   []),\n  ('normal control 6',\n   [[['w2', 'staff', 30, 60], ['w3', 'staff', 120, 210], ['w3', 'staff', 60, 300], ['w3', 'staff', 120, 360],\n     ['w1', 'supervisor', 120, 240]],\n    [3, 0, 3, 0, 3], 60],\n   [[0, 0, 6], [2, 4, 6], [4, 2, 6]]),\n  ('normal control 7',\n   [[['w2', 'staff', 30, 270], ['w3', 'staff', 90, 180], ['w3', 'staff', 180, 420], ['w4', 'staff', 120, 300],\n     ['w1', 'staff', 120, 180]],\n    [0, 0, 2, 0], 60],\n   []),\n  ('normal control 8',\n   [[['w3', 'staff', 60, 300], ['w4', 'supervisor', 180, 210], ['w4', 'staff', 120, 180],\n     ['w1', 'staff', 30, 270], ['w1', 'supervisor', 180, 240]],\n    [2, 0, 2, 1, 1, 0], 60],\n   [[0, 0, 4]])],\n [('regression: trainee weight 1',\n   [[['w3', 'staff', 120, 240], ['w4', 'supervisor', 90, 330], ['w2', 'staff', 60, 150],\n     ['w1', 'staff', 180, 270], ['w1', 'trainee', 90, 180], ['w1', 'staff', 30, 90]],\n    [1, 3, 3], 60],\n   [[0, 0, 2], [1, 2, 6], [2, 5, 6]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'trainee', 0, 60], ['w2', 'staff', 30, 120], ['w4', 'supervisor', 0, 90],\n     ['w1', 'supervisor', 0, 90], ['w3', 'staff', 120, 300], ['w2', 'staff', 180, 360],\n     ['w4', 'supervisor', 0, 60]],\n    [3, 3, 2, 0, 3, 0], 60],\n   [[0, 5, 6], [1, 2, 6], [2, 2, 4], [4, 4, 6]]),\n  ('partial repair guard 3',\n   [[['w1', 'staff', 180, 210], ['w4', 'staff', 60, 300], ['w2', 'trainee', 120, 180],\n     ['w4', 'staff', 180, 360], ['w4', 'supervisor', 30, 210], ['w2', 'supervisor', 60, 180]],\n    [3, 1, 2, 3, 3, 1], 60],\n   [[0, 0, 6], [3, 2, 6], [4, 2, 6]]),\n  ('boundary control 4', [[['w1', 'supervisor', 0, 60], ['w2', 'trainee', 0, 60]], [2], 60], [[0, 3, 4]]),\n  ('normal control 5',\n   [[['w3', 'trainee', 120, 360], ['w2', 'staff', 30, 150], ['w4', 'trainee', 0, 180]], [1, 0, 2, 3, 1, 1],\n    60],\n   [[0, 1, 2], [2, 2, 4], [3, 1, 6], [4, 1, 2], [5, 1, 2]]),\n  ('normal control 6',\n   [[['w1', 'staff', 120, 210], ['w4', 'staff', 60, 240], ['w1', 'trainee', 60, 120],\n     ['w3', 'trainee', 60, 300], ['w4', 'staff', 180, 360]],\n    [1, 3, 1, 1, 0], 60],\n   [[0, 0, 2], [1, 4, 6]]),\n  ('normal control 7',\n   [[['w2', 'supervisor', 120, 150], ['w2', 'staff', 60, 150], ['w3', 'supervisor', 180, 270],\n     ['w4', 'trainee', 90, 120], ['w2', 'trainee', 60, 150], ['w1', 'supervisor', 30, 210]],\n    [3, 3, 1, 2, 3, 0], 60],\n   [[0, 0, 6], [1, 4, 6], [3, 2, 4], [4, 0, 6]]),\n  ('normal control 8',\n   [[['w1', 'supervisor', 90, 270], ['w1', 'staff', 0, 60], ['w4', 'staff', 180, 360],\n     ['w4', 'supervisor', 90, 210], ['w3', 'staff', 120, 240], ['w1', 'staff', 0, 60]],\n    [3, 3, 2], 60],\n   [[0, 2, 6], [1, 0, 6]])],\n [('regression: trainee weight 1',\n   [[['w2', 'trainee', 0, 90], ['w3', 'trainee', 120, 240], ['w4', 'staff', 0, 90],\n     ['w3', 'supervisor', 0, 180], ['w3', 'supervisor', 120, 180], ['w4', 'staff', 120, 360]],\n    [1, 3, 2, 3, 3, 2], 60],\n   [[1, 2, 6], [3, 3, 6], [4, 2, 6], [5, 2, 4]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'staff', 30, 210], ['w1', 'trainee', 0, 240], ['w2', 'staff', 30, 120], ['w4', 'staff', 60, 300]],\n    [2, 3, 1], 60],\n   [[0, 1, 4], [1, 5, 6]]),\n  ('partial repair guard 3',\n   [[['w4', 'trainee', 180, 270], ['w1', 'supervisor', 90, 180], ['w3', 'staff', 0, 90]], [2, 2, 3], 60],\n   [[0, 2, 4], [1, 0, 4], [2, 2, 6]]),\n  ('boundary control 4', [[['w1', 'trainee', 0, 60], ['w2', 'trainee', 0, 60]], [1], 60], []),\n  ('normal control 5',\n   [[['w3', 'staff', 30, 210], ['w4', 'trainee', 30, 210], ['w3', 'trainee', 90, 180],\n     ['w1', 'staff', 0, 90]],\n    [0, 1, 1, 2], 60],\n   [[3, 0, 4]]),\n  ('normal control 6',\n   [[['w3', 'staff', 60, 300], ['w4', 'supervisor', 180, 210], ['w4', 'staff', 120, 180],\n     ['w1', 'staff', 30, 270], ['w1', 'supervisor', 180, 240]],\n    [2, 0, 2, 1, 1, 0], 60],\n   [[0, 0, 4]]),\n  ('normal control 7',\n   [[['w4', 'staff', 0, 60], ['w4', 'staff', 60, 90], ['w2', 'trainee', 60, 240], ['w1', 'staff', 60, 90],\n     ['w4', 'supervisor', 0, 90], ['w3', 'staff', 30, 120], ['w1', 'trainee', 180, 360]],\n    [3, 3, 0], 60],\n   [[0, 2, 6], [1, 3, 6]]),\n  ('normal control 8', [[['w2', 'supervisor', 0, 240], ['w3', 'supervisor', 90, 180]], [2, 0, 0], 60],\n   [[0, 2, 4]])],\n [('regression: trainee weight 1',\n   [[['w4', 'trainee', 60, 240], ['w4', 'staff', 90, 120], ['w4', 'staff', 120, 240],\n     ['w1', 'staff', 120, 240]],\n    [3, 1, 0, 2, 0], 60],\n   [[0, 0, 6], [1, 1, 2]]),\n  ('regression variant: trainee weight 2',\n   [[['w4', 'supervisor', 180, 360], ['w1', 'staff', 180, 360], ['w3', 'supervisor', 60, 150],\n     ['w2', 'staff', 180, 240], ['w3', 'staff', 30, 270], ['w4', 'trainee', 0, 90],\n     ['w4', 'supervisor', 120, 300]],\n    [3, 1, 3, 0], 60],\n   [[0, 1, 6], [2, 4, 6]]),\n  ('partial repair guard 3',\n   [[['w3', 'staff', 30, 270], ['w4', 'supervisor', 90, 210], ['w3', 'trainee', 60, 300],\n     ['w4', 'trainee', 90, 150]],\n    [1, 0, 2, 3, 0], 60],\n   [[0, 0, 2], [3, 2, 6]]),\n  ('boundary control 4', [[['w1', 'staff', 0, 60]], [1, 1], 60], [[1, 0, 2]]),\n  ('normal control 5',\n   [[['w4', 'staff', 0, 30], ['w2', 'staff', 90, 210], ['w1', 'trainee', 30, 60], ['w3', 'staff', 120, 300],\n     ['w2', 'supervisor', 90, 270], ['w2', 'trainee', 30, 150]],\n    [0, 0, 2, 1], 60],\n   []),\n  ('normal control 6',\n   [[['w2', 'staff', 90, 210], ['w1', 'supervisor', 60, 300], ['w1', 'staff', 60, 90],\n     ['w4', 'staff', 180, 270], ['w4', 'staff', 30, 210]],\n    [2, 0, 0, 0], 60],\n   [[0, 0, 4]]),\n  ('normal control 7',\n   [[['w4', 'supervisor', 180, 420], ['w4', 'trainee', 90, 270], ['w3', 'staff', 30, 90],\n     ['w3', 'staff', 30, 270], ['w1', 'supervisor', 60, 300]],\n    [1, 3, 2], 60],\n   [[0, 0, 2], [1, 4, 6]]),\n  ('normal control 8',\n   [[['w3', 'staff', 30, 210], ['w4', 'trainee', 30, 210], ['w3', 'trainee', 90, 180],\n     ['w1', 'staff', 0, 90]],\n    [0, 1, 1, 2], 60],\n   [[3, 0, 4]])]]\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":"c2ae2db900311b5a13b1bfa5d5ab9f344cf6d36fc03a0b310114cbb76a9ce3a5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(shifts, need, slot):\n    out = []\n    for k, req in enumerate(need):\n        a, b = k * slot, (k + 1) * slot\n        seen = {}\n        for w, role, s, e in shifts:\n            if s <= a and e >= b:\n                seen[w] = max(seen.get(w, 0), 2)\n        have = sum(seen.values())\n        if have < 2 * req:\n            out.append([k, have, 2 * req])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: trainee weight 1', [[['w1', 'supervisor', 0, 60], ['w2', 'trainee', 0, 60]], [2], 60],\n   [[0, 3, 4]]),\n  ('regression variant: trainee weight 2',\n   [[['w1', 'staff', 180, 270], ['w2', 'supervisor', 0, 180], ['w1', 'trainee', 60, 300],\n     ['w3', 'supervisor', 120, 210], ['w1', 'trainee', 60, 90], ['w2', 'supervisor', 180, 270]],\n    [2, 2, 2, 1], 60],\n   [[0, 2, 4], [1, 3, 4]]),\n  ('partial repair guard 3',\n   [[['w2', 'staff', 180, 240], ['w1', 'staff', 30, 90], ['w3', 'supervisor', 60, 240]], [2, 2, 0], 60],\n   [[0, 0, 4], [1, 2, 4]]),\n  ('boundary control 4', [[['w1', 'staff', 0, 120], ['w1', 'trainee', 0, 60]], [2, 1], 60], [[0, 2, 4]]),\n  ('normal control 5',\n   [[['w1', 'supervisor', 0, 120], ['w3', 'trainee', 120, 240], ['w1', 'staff', 60, 150],\n     ['w3', 'trainee', 0, 120], ['w2', 'supervisor', 60, 240], ['w1', 'staff', 60, 300],\n     ['w1', 'staff', 30, 60]],\n    [1, 3, 2, 1, 3], 60],\n   [[1, 5, 6], [4, 2, 6]]),\n  ('normal control 6',\n   [[['w2', 'staff', 60, 240], ['w1', 'staff', 90, 270], ['w2', 'supervisor', 30, 60],\n     ['w4', 'supervisor', 30, 60]],\n    [1, 1, 3, 3], 60],\n   [[0, 0, 2], [2, 4, 6], [3, 4, 6]]),\n  ('normal control 7',\n   [[['w3', 'staff', 30, 150], ['w3', 'trainee', 60, 150], ['w4', 'supervisor', 0, 30],\n     ['w1', 'staff', 90, 270], ['w1', 'trainee', 90, 330], ['w4', 'staff', 30, 90],\n     ['w1', 'supervisor', 180, 210]],\n    [1, 2, 0, 2], 60],\n   [[0, 0, 2], [1, 2, 4], [3, 2, 4]]),\n  ('normal control 8', [[['w3', 'trainee', 90, 120], ['w3', 'staff', 120, 210]], [1, 2, 3, 0, 3], 60],\n   [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]])],\n [('regression: trainee weight 1',\n   [[['w4', 'supervisor', 120, 360], ['w3', 'supervisor', 30, 270], ['w2', 'trainee', 120, 180],\n     ['w2', 'trainee', 0, 120], ['w2', 'trainee', 180, 420], ['w3', 'trainee', 30, 210]],\n    [2, 1, 3, 3], 60],\n   [[0, 1, 4], [2, 5, 6], [3, 5, 6]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'staff', 90, 270], ['w4', 'trainee', 90, 270], ['w1', 'staff', 180, 420],\n     ['w4', 'trainee', 90, 210], ['w1', 'supervisor', 180, 360], ['w3', 'staff', 60, 180],\n     ['w2', 'trainee', 180, 360]],\n    [0, 0, 2, 0, 3], 60],\n   [[4, 3, 6]]),\n  ('partial repair guard 3',\n   [[['w1', 'staff', 180, 270], ['w2', 'supervisor', 0, 180], ['w1', 'trainee', 60, 300],\n     ['w3', 'supervisor', 120, 210], ['w1', 'trainee', 60, 90], ['w2', 'supervisor', 180, 270]],\n    [2, 2, 2, 1], 60],\n   [[0, 2, 4], [1, 3, 4]]),\n  ('boundary control 4', [[['w1', 'staff', 30, 120]], [1, 1], 60], [[0, 0, 2]]),\n  ('normal control 5',\n   [[['w3', 'staff', 0, 180], ['w1', 'staff', 60, 180], ['w1', 'trainee', 30, 270],\n     ['w3', 'supervisor', 180, 240], ['w2', 'staff', 60, 180], ['w1', 'staff', 30, 120],\n     ['w4', 'trainee', 0, 180]],\n    [0, 2, 2, 0], 60],\n   []),\n  ('normal control 6',\n   [[['w2', 'staff', 30, 60], ['w3', 'staff', 120, 210], ['w3', 'staff', 60, 300], ['w3', 'staff', 120, 360],\n     ['w1', 'supervisor', 120, 240]],\n    [3, 0, 3, 0, 3], 60],\n   [[0, 0, 6], [2, 4, 6], [4, 2, 6]]),\n  ('normal control 7',\n   [[['w2', 'staff', 30, 270], ['w3', 'staff', 90, 180], ['w3', 'staff', 180, 420], ['w4', 'staff', 120, 300],\n     ['w1', 'staff', 120, 180]],\n    [0, 0, 2, 0], 60],\n   []),\n  ('normal control 8',\n   [[['w3', 'staff', 60, 300], ['w4', 'supervisor', 180, 210], ['w4', 'staff', 120, 180],\n     ['w1', 'staff', 30, 270], ['w1', 'supervisor', 180, 240]],\n    [2, 0, 2, 1, 1, 0], 60],\n   [[0, 0, 4]])],\n [('regression: trainee weight 1',\n   [[['w3', 'staff', 120, 240], ['w4', 'supervisor', 90, 330], ['w2', 'staff', 60, 150],\n     ['w1', 'staff', 180, 270], ['w1', 'trainee', 90, 180], ['w1', 'staff', 30, 90]],\n    [1, 3, 3], 60],\n   [[0, 0, 2], [1, 2, 6], [2, 5, 6]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'trainee', 0, 60], ['w2', 'staff', 30, 120], ['w4', 'supervisor', 0, 90],\n     ['w1', 'supervisor', 0, 90], ['w3', 'staff', 120, 300], ['w2', 'staff', 180, 360],\n     ['w4', 'supervisor', 0, 60]],\n    [3, 3, 2, 0, 3, 0], 60],\n   [[0, 5, 6], [1, 2, 6], [2, 2, 4], [4, 4, 6]]),\n  ('partial repair guard 3',\n   [[['w1', 'staff', 180, 210], ['w4', 'staff', 60, 300], ['w2', 'trainee', 120, 180],\n     ['w4', 'staff', 180, 360], ['w4', 'supervisor', 30, 210], ['w2', 'supervisor', 60, 180]],\n    [3, 1, 2, 3, 3, 1], 60],\n   [[0, 0, 6], [3, 2, 6], [4, 2, 6]]),\n  ('boundary control 4', [[['w1', 'supervisor', 0, 60], ['w2', 'trainee', 0, 60]], [2], 60], [[0, 3, 4]]),\n  ('normal control 5',\n   [[['w3', 'trainee', 120, 360], ['w2', 'staff', 30, 150], ['w4', 'trainee', 0, 180]], [1, 0, 2, 3, 1, 1],\n    60],\n   [[0, 1, 2], [2, 2, 4], [3, 1, 6], [4, 1, 2], [5, 1, 2]]),\n  ('normal control 6',\n   [[['w1', 'staff', 120, 210], ['w4', 'staff', 60, 240], ['w1', 'trainee', 60, 120],\n     ['w3', 'trainee', 60, 300], ['w4', 'staff', 180, 360]],\n    [1, 3, 1, 1, 0], 60],\n   [[0, 0, 2], [1, 4, 6]]),\n  ('normal control 7',\n   [[['w2', 'supervisor', 120, 150], ['w2', 'staff', 60, 150], ['w3', 'supervisor', 180, 270],\n     ['w4', 'trainee', 90, 120], ['w2', 'trainee', 60, 150], ['w1', 'supervisor', 30, 210]],\n    [3, 3, 1, 2, 3, 0], 60],\n   [[0, 0, 6], [1, 4, 6], [3, 2, 4], [4, 0, 6]]),\n  ('normal control 8',\n   [[['w1', 'supervisor', 90, 270], ['w1', 'staff', 0, 60], ['w4', 'staff', 180, 360],\n     ['w4', 'supervisor', 90, 210], ['w3', 'staff', 120, 240], ['w1', 'staff', 0, 60]],\n    [3, 3, 2], 60],\n   [[0, 2, 6], [1, 0, 6]])],\n [('regression: trainee weight 1',\n   [[['w2', 'trainee', 0, 90], ['w3', 'trainee', 120, 240], ['w4', 'staff', 0, 90],\n     ['w3', 'supervisor', 0, 180], ['w3', 'supervisor', 120, 180], ['w4', 'staff', 120, 360]],\n    [1, 3, 2, 3, 3, 2], 60],\n   [[1, 2, 6], [3, 3, 6], [4, 2, 6], [5, 2, 4]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'staff', 30, 210], ['w1', 'trainee', 0, 240], ['w2', 'staff', 30, 120], ['w4', 'staff', 60, 300]],\n    [2, 3, 1], 60],\n   [[0, 1, 4], [1, 5, 6]]),\n  ('partial repair guard 3',\n   [[['w4', 'trainee', 180, 270], ['w1', 'supervisor', 90, 180], ['w3', 'staff', 0, 90]], [2, 2, 3], 60],\n   [[0, 2, 4], [1, 0, 4], [2, 2, 6]]),\n  ('boundary control 4', [[['w1', 'trainee', 0, 60], ['w2', 'trainee', 0, 60]], [1], 60], []),\n  ('normal control 5',\n   [[['w3', 'staff', 30, 210], ['w4', 'trainee', 30, 210], ['w3', 'trainee', 90, 180],\n     ['w1', 'staff', 0, 90]],\n    [0, 1, 1, 2], 60],\n   [[3, 0, 4]]),\n  ('normal control 6',\n   [[['w3', 'staff', 60, 300], ['w4', 'supervisor', 180, 210], ['w4', 'staff', 120, 180],\n     ['w1', 'staff', 30, 270], ['w1', 'supervisor', 180, 240]],\n    [2, 0, 2, 1, 1, 0], 60],\n   [[0, 0, 4]]),\n  ('normal control 7',\n   [[['w4', 'staff', 0, 60], ['w4', 'staff', 60, 90], ['w2', 'trainee', 60, 240], ['w1', 'staff', 60, 90],\n     ['w4', 'supervisor', 0, 90], ['w3', 'staff', 30, 120], ['w1', 'trainee', 180, 360]],\n    [3, 3, 0], 60],\n   [[0, 2, 6], [1, 3, 6]]),\n  ('normal control 8', [[['w2', 'supervisor', 0, 240], ['w3', 'supervisor', 90, 180]], [2, 0, 0], 60],\n   [[0, 2, 4]])],\n [('regression: trainee weight 1',\n   [[['w4', 'trainee', 60, 240], ['w4', 'staff', 90, 120], ['w4', 'staff', 120, 240],\n     ['w1', 'staff', 120, 240]],\n    [3, 1, 0, 2, 0], 60],\n   [[0, 0, 6], [1, 1, 2]]),\n  ('regression variant: trainee weight 2',\n   [[['w4', 'supervisor', 180, 360], ['w1', 'staff', 180, 360], ['w3', 'supervisor', 60, 150],\n     ['w2', 'staff', 180, 240], ['w3', 'staff', 30, 270], ['w4', 'trainee', 0, 90],\n     ['w4', 'supervisor', 120, 300]],\n    [3, 1, 3, 0], 60],\n   [[0, 1, 6], [2, 4, 6]]),\n  ('partial repair guard 3',\n   [[['w3', 'staff', 30, 270], ['w4', 'supervisor', 90, 210], ['w3', 'trainee', 60, 300],\n     ['w4', 'trainee', 90, 150]],\n    [1, 0, 2, 3, 0], 60],\n   [[0, 0, 2], [3, 2, 6]]),\n  ('boundary control 4', [[['w1', 'staff', 0, 60]], [1, 1], 60], [[1, 0, 2]]),\n  ('normal control 5',\n   [[['w4', 'staff', 0, 30], ['w2', 'staff', 90, 210], ['w1', 'trainee', 30, 60], ['w3', 'staff', 120, 300],\n     ['w2', 'supervisor', 90, 270], ['w2', 'trainee', 30, 150]],\n    [0, 0, 2, 1], 60],\n   []),\n  ('normal control 6',\n   [[['w2', 'staff', 90, 210], ['w1', 'supervisor', 60, 300], ['w1', 'staff', 60, 90],\n     ['w4', 'staff', 180, 270], ['w4', 'staff', 30, 210]],\n    [2, 0, 0, 0], 60],\n   [[0, 0, 4]]),\n  ('normal control 7',\n   [[['w4', 'supervisor', 180, 420], ['w4', 'trainee', 90, 270], ['w3', 'staff', 30, 90],\n     ['w3', 'staff', 30, 270], ['w1', 'supervisor', 60, 300]],\n    [1, 3, 2], 60],\n   [[0, 0, 2], [1, 4, 6]]),\n  ('normal control 8',\n   [[['w3', 'staff', 30, 210], ['w4', 'trainee', 30, 210], ['w3', 'trainee', 90, 180],\n     ['w1', 'staff', 0, 90]],\n    [0, 1, 1, 2], 60],\n   [[3, 0, 4]])]]\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":"3520ca59cf3ea5864a70abdbdc7da1f21498d6107332fe13abc137c72497c2b4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(shifts, need, slot):\n    out = []\n    for k, req in enumerate(need):\n        a, b = k * slot, (k + 1) * slot\n        seen = {}\n        for w, role, s, e in shifts:\n            if s <= a and e >= b:\n                seen[w] = max(seen.get(w, 0), 1 if role == 'trainee' else 2)\n        have = sum(seen.values())\n        if have < 2 * req:\n            out.append([k, have, 2 * req])\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: trainee weight 1', [[['w1', 'supervisor', 0, 60], ['w2', 'trainee', 0, 60]], [2], 60],\n   [[0, 3, 4]]),\n  ('regression variant: trainee weight 2',\n   [[['w1', 'staff', 180, 270], ['w2', 'supervisor', 0, 180], ['w1', 'trainee', 60, 300],\n     ['w3', 'supervisor', 120, 210], ['w1', 'trainee', 60, 90], ['w2', 'supervisor', 180, 270]],\n    [2, 2, 2, 1], 60],\n   [[0, 2, 4], [1, 3, 4]]),\n  ('partial repair guard 3',\n   [[['w2', 'staff', 180, 240], ['w1', 'staff', 30, 90], ['w3', 'supervisor', 60, 240]], [2, 2, 0], 60],\n   [[0, 0, 4], [1, 2, 4]]),\n  ('boundary control 4', [[['w1', 'staff', 0, 120], ['w1', 'trainee', 0, 60]], [2, 1], 60], [[0, 2, 4]]),\n  ('normal control 5',\n   [[['w1', 'supervisor', 0, 120], ['w3', 'trainee', 120, 240], ['w1', 'staff', 60, 150],\n     ['w3', 'trainee', 0, 120], ['w2', 'supervisor', 60, 240], ['w1', 'staff', 60, 300],\n     ['w1', 'staff', 30, 60]],\n    [1, 3, 2, 1, 3], 60],\n   [[1, 5, 6], [4, 2, 6]]),\n  ('normal control 6',\n   [[['w2', 'staff', 60, 240], ['w1', 'staff', 90, 270], ['w2', 'supervisor', 30, 60],\n     ['w4', 'supervisor', 30, 60]],\n    [1, 1, 3, 3], 60],\n   [[0, 0, 2], [2, 4, 6], [3, 4, 6]]),\n  ('normal control 7',\n   [[['w3', 'staff', 30, 150], ['w3', 'trainee', 60, 150], ['w4', 'supervisor', 0, 30],\n     ['w1', 'staff', 90, 270], ['w1', 'trainee', 90, 330], ['w4', 'staff', 30, 90],\n     ['w1', 'supervisor', 180, 210]],\n    [1, 2, 0, 2], 60],\n   [[0, 0, 2], [1, 2, 4], [3, 2, 4]]),\n  ('normal control 8', [[['w3', 'trainee', 90, 120], ['w3', 'staff', 120, 210]], [1, 2, 3, 0, 3], 60],\n   [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]])],\n [('regression: trainee weight 1',\n   [[['w4', 'supervisor', 120, 360], ['w3', 'supervisor', 30, 270], ['w2', 'trainee', 120, 180],\n     ['w2', 'trainee', 0, 120], ['w2', 'trainee', 180, 420], ['w3', 'trainee', 30, 210]],\n    [2, 1, 3, 3], 60],\n   [[0, 1, 4], [2, 5, 6], [3, 5, 6]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'staff', 90, 270], ['w4', 'trainee', 90, 270], ['w1', 'staff', 180, 420],\n     ['w4', 'trainee', 90, 210], ['w1', 'supervisor', 180, 360], ['w3', 'staff', 60, 180],\n     ['w2', 'trainee', 180, 360]],\n    [0, 0, 2, 0, 3], 60],\n   [[4, 3, 6]]),\n  ('partial repair guard 3',\n   [[['w1', 'staff', 180, 270], ['w2', 'supervisor', 0, 180], ['w1', 'trainee', 60, 300],\n     ['w3', 'supervisor', 120, 210], ['w1', 'trainee', 60, 90], ['w2', 'supervisor', 180, 270]],\n    [2, 2, 2, 1], 60],\n   [[0, 2, 4], [1, 3, 4]]),\n  ('boundary control 4', [[['w1', 'staff', 30, 120]], [1, 1], 60], [[0, 0, 2]]),\n  ('normal control 5',\n   [[['w3', 'staff', 0, 180], ['w1', 'staff', 60, 180], ['w1', 'trainee', 30, 270],\n     ['w3', 'supervisor', 180, 240], ['w2', 'staff', 60, 180], ['w1', 'staff', 30, 120],\n     ['w4', 'trainee', 0, 180]],\n    [0, 2, 2, 0], 60],\n   []),\n  ('normal control 6',\n   [[['w2', 'staff', 30, 60], ['w3', 'staff', 120, 210], ['w3', 'staff', 60, 300], ['w3', 'staff', 120, 360],\n     ['w1', 'supervisor', 120, 240]],\n    [3, 0, 3, 0, 3], 60],\n   [[0, 0, 6], [2, 4, 6], [4, 2, 6]]),\n  ('normal control 7',\n   [[['w2', 'staff', 30, 270], ['w3', 'staff', 90, 180], ['w3', 'staff', 180, 420], ['w4', 'staff', 120, 300],\n     ['w1', 'staff', 120, 180]],\n    [0, 0, 2, 0], 60],\n   []),\n  ('normal control 8',\n   [[['w3', 'staff', 60, 300], ['w4', 'supervisor', 180, 210], ['w4', 'staff', 120, 180],\n     ['w1', 'staff', 30, 270], ['w1', 'supervisor', 180, 240]],\n    [2, 0, 2, 1, 1, 0], 60],\n   [[0, 0, 4]])],\n [('regression: trainee weight 1',\n   [[['w3', 'staff', 120, 240], ['w4', 'supervisor', 90, 330], ['w2', 'staff', 60, 150],\n     ['w1', 'staff', 180, 270], ['w1', 'trainee', 90, 180], ['w1', 'staff', 30, 90]],\n    [1, 3, 3], 60],\n   [[0, 0, 2], [1, 2, 6], [2, 5, 6]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'trainee', 0, 60], ['w2', 'staff', 30, 120], ['w4', 'supervisor', 0, 90],\n     ['w1', 'supervisor', 0, 90], ['w3', 'staff', 120, 300], ['w2', 'staff', 180, 360],\n     ['w4', 'supervisor', 0, 60]],\n    [3, 3, 2, 0, 3, 0], 60],\n   [[0, 5, 6], [1, 2, 6], [2, 2, 4], [4, 4, 6]]),\n  ('partial repair guard 3',\n   [[['w1', 'staff', 180, 210], ['w4', 'staff', 60, 300], ['w2', 'trainee', 120, 180],\n     ['w4', 'staff', 180, 360], ['w4', 'supervisor', 30, 210], ['w2', 'supervisor', 60, 180]],\n    [3, 1, 2, 3, 3, 1], 60],\n   [[0, 0, 6], [3, 2, 6], [4, 2, 6]]),\n  ('boundary control 4', [[['w1', 'supervisor', 0, 60], ['w2', 'trainee', 0, 60]], [2], 60], [[0, 3, 4]]),\n  ('normal control 5',\n   [[['w3', 'trainee', 120, 360], ['w2', 'staff', 30, 150], ['w4', 'trainee', 0, 180]], [1, 0, 2, 3, 1, 1],\n    60],\n   [[0, 1, 2], [2, 2, 4], [3, 1, 6], [4, 1, 2], [5, 1, 2]]),\n  ('normal control 6',\n   [[['w1', 'staff', 120, 210], ['w4', 'staff', 60, 240], ['w1', 'trainee', 60, 120],\n     ['w3', 'trainee', 60, 300], ['w4', 'staff', 180, 360]],\n    [1, 3, 1, 1, 0], 60],\n   [[0, 0, 2], [1, 4, 6]]),\n  ('normal control 7',\n   [[['w2', 'supervisor', 120, 150], ['w2', 'staff', 60, 150], ['w3', 'supervisor', 180, 270],\n     ['w4', 'trainee', 90, 120], ['w2', 'trainee', 60, 150], ['w1', 'supervisor', 30, 210]],\n    [3, 3, 1, 2, 3, 0], 60],\n   [[0, 0, 6], [1, 4, 6], [3, 2, 4], [4, 0, 6]]),\n  ('normal control 8',\n   [[['w1', 'supervisor', 90, 270], ['w1', 'staff', 0, 60], ['w4', 'staff', 180, 360],\n     ['w4', 'supervisor', 90, 210], ['w3', 'staff', 120, 240], ['w1', 'staff', 0, 60]],\n    [3, 3, 2], 60],\n   [[0, 2, 6], [1, 0, 6]])],\n [('regression: trainee weight 1',\n   [[['w2', 'trainee', 0, 90], ['w3', 'trainee', 120, 240], ['w4', 'staff', 0, 90],\n     ['w3', 'supervisor', 0, 180], ['w3', 'supervisor', 120, 180], ['w4', 'staff', 120, 360]],\n    [1, 3, 2, 3, 3, 2], 60],\n   [[1, 2, 6], [3, 3, 6], [4, 2, 6], [5, 2, 4]]),\n  ('regression variant: trainee weight 2',\n   [[['w2', 'staff', 30, 210], ['w1', 'trainee', 0, 240], ['w2', 'staff', 30, 120], ['w4', 'staff', 60, 300]],\n    [2, 3, 1], 60],\n   [[0, 1, 4], [1, 5, 6]]),\n  ('partial repair guard 3',\n   [[['w4', 'trainee', 180, 270], ['w1', 'supervisor', 90, 180], ['w3', 'staff', 0, 90]], [2, 2, 3], 60],\n   [[0, 2, 4], [1, 0, 4], [2, 2, 6]]),\n  ('boundary control 4', [[['w1', 'trainee', 0, 60], ['w2', 'trainee', 0, 60]], [1], 60], []),\n  ('normal control 5',\n   [[['w3', 'staff', 30, 210], ['w4', 'trainee', 30, 210], ['w3', 'trainee', 90, 180],\n     ['w1', 'staff', 0, 90]],\n    [0, 1, 1, 2], 60],\n   [[3, 0, 4]]),\n  ('normal control 6',\n   [[['w3', 'staff', 60, 300], ['w4', 'supervisor', 180, 210], ['w4', 'staff', 120, 180],\n     ['w1', 'staff', 30, 270], ['w1', 'supervisor', 180, 240]],\n    [2, 0, 2, 1, 1, 0], 60],\n   [[0, 0, 4]]),\n  ('normal control 7',\n   [[['w4', 'staff', 0, 60], ['w4', 'staff', 60, 90], ['w2', 'trainee', 60, 240], ['w1', 'staff', 60, 90],\n     ['w4', 'supervisor', 0, 90], ['w3', 'staff', 30, 120], ['w1', 'trainee', 180, 360]],\n    [3, 3, 0], 60],\n   [[0, 2, 6], [1, 3, 6]]),\n  ('normal control 8', [[['w2', 'supervisor', 0, 240], ['w3', 'supervisor', 90, 180]], [2, 0, 0], 60],\n   [[0, 2, 4]])],\n [('regression: trainee weight 1',\n   [[['w4', 'trainee', 60, 240], ['w4', 'staff', 90, 120], ['w4', 'staff', 120, 240],\n     ['w1', 'staff', 120, 240]],\n    [3, 1, 0, 2, 0], 60],\n   [[0, 0, 6], [1, 1, 2]]),\n  ('regression variant: trainee weight 2',\n   [[['w4', 'supervisor', 180, 360], ['w1', 'staff', 180, 360], ['w3', 'supervisor', 60, 150],\n     ['w2', 'staff', 180, 240], ['w3', 'staff', 30, 270], ['w4', 'trainee', 0, 90],\n     ['w4', 'supervisor', 120, 300]],\n    [3, 1, 3, 0], 60],\n   [[0, 1, 6], [2, 4, 6]]),\n  ('partial repair guard 3',\n   [[['w3', 'staff', 30, 270], ['w4', 'supervisor', 90, 210], ['w3', 'trainee', 60, 300],\n     ['w4', 'trainee', 90, 150]],\n    [1, 0, 2, 3, 0], 60],\n   [[0, 0, 2], [3, 2, 6]]),\n  ('boundary control 4', [[['w1', 'staff', 0, 60]], [1, 1], 60], [[1, 0, 2]]),\n  ('normal control 5',\n   [[['w4', 'staff', 0, 30], ['w2', 'staff', 90, 210], ['w1', 'trainee', 30, 60], ['w3', 'staff', 120, 300],\n     ['w2', 'supervisor', 90, 270], ['w2', 'trainee', 30, 150]],\n    [0, 0, 2, 1], 60],\n   []),\n  ('normal control 6',\n   [[['w2', 'staff', 90, 210], ['w1', 'supervisor', 60, 300], ['w1', 'staff', 60, 90],\n     ['w4', 'staff', 180, 270], ['w4', 'staff', 30, 210]],\n    [2, 0, 0, 0], 60],\n   [[0, 0, 4]]),\n  ('normal control 7',\n   [[['w4', 'supervisor', 180, 420], ['w4', 'trainee', 90, 270], ['w3', 'staff', 30, 90],\n     ['w3', 'staff', 30, 270], ['w1', 'supervisor', 60, 300]],\n    [1, 3, 2], 60],\n   [[0, 0, 2], [1, 4, 6]]),\n  ('normal control 8',\n   [[['w3', 'staff', 30, 210], ['w4', 'trainee', 30, 210], ['w3', 'trainee', 90, 180],\n     ['w1', 'staff', 0, 90]],\n    [0, 1, 1, 2], 60],\n   [[3, 0, 4]])]]\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-slot-coverage-headcount-trainee-weight","generated_at":"2026-09-29T14:52:01.260730+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Coverage checks decide whether a roster meets minimum staffing ratios.","repair":"Trainees count as half a head.","root_cause":"Every role is weighted as a full head.","sha256":"f8e5c95336073cf7ed29df27c139074ac2bfbdb984dcec5704b760e710bbe5f6","title":"Trainees counted as full heads · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.52,"exit_code":1,"observations":[{"actual":[[0,2,4]],"check":"regression: trainee weight 1","expected":[[0,3,4]],"passed":false},{"actual":[[0,1,4],[1,2,4],[2,3,4]],"check":"regression variant: trainee weight 2","expected":[[0,2,4],[1,3,4]],"passed":false},{"actual":[[0,0,4],[1,1,4]],"check":"partial repair guard 3","expected":[[0,0,4],[1,2,4]],"passed":false},{"actual":[[0,2,4]],"check":"boundary control 4","expected":[[0,2,4]],"passed":true},{"actual":[[1,4,6],[4,2,6]],"check":"normal control 5","expected":[[1,5,6],[4,2,6]],"passed":false},{"actual":[[0,0,2],[2,4,6],[3,4,6]],"check":"normal control 6","expected":[[0,0,2],[2,4,6],[3,4,6]],"passed":true},{"actual":[[0,0,2],[1,2,4],[3,2,4]],"check":"normal control 7","expected":[[0,0,2],[1,2,4],[3,2,4]],"passed":true},{"actual":[[0,0,2],[1,0,4],[2,2,6],[4,0,6]],"check":"normal control 8","expected":[[0,0,2],[1,0,4],[2,2,6],[4,0,6]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trainee weight 1\", \"actual\": [[0, 2, 4]], \"expected\": [[0, 3, 4]], \"passed\": false}, {\"check\": \"regression variant: trainee weight 2\", \"actual\": [[0, 1, 4], [1, 2, 4], [2, 3, 4]], \"expected\": [[0, 2, 4], [1, 3, 4]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[0, 0, 4], [1, 1, 4]], \"expected\": [[0, 0, 4], [1, 2, 4]], \"passed\": false}, {\"check\": \"boundary control 4\", \"actual\": [[0, 2, 4]], \"expected\": [[0, 2, 4]], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[1, 4, 6], [4, 2, 6]], \"expected\": [[1, 5, 6], [4, 2, 6]], \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": [[0, 0, 2], [2, 4, 6], [3, 4, 6]], \"expected\": [[0, 0, 2], [2, 4, 6], [3, 4, 6]], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[0, 0, 2], [1, 2, 4], [3, 2, 4]], \"expected\": [[0, 0, 2], [1, 2, 4], [3, 2, 4]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]], \"expected\": [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.71,"exit_code":1,"observations":[{"actual":[],"check":"regression: trainee weight 1","expected":[[0,3,4]],"passed":false},{"actual":[[0,2,4]],"check":"regression variant: trainee weight 2","expected":[[0,2,4],[1,3,4]],"passed":false},{"actual":[[0,0,4],[1,2,4]],"check":"partial repair guard 3","expected":[[0,0,4],[1,2,4]],"passed":true},{"actual":[[0,2,4]],"check":"boundary control 4","expected":[[0,2,4]],"passed":true},{"actual":[[4,2,6]],"check":"normal control 5","expected":[[1,5,6],[4,2,6]],"passed":false},{"actual":[[0,0,2],[2,4,6],[3,4,6]],"check":"normal control 6","expected":[[0,0,2],[2,4,6],[3,4,6]],"passed":true},{"actual":[[0,0,2],[1,2,4],[3,2,4]],"check":"normal control 7","expected":[[0,0,2],[1,2,4],[3,2,4]],"passed":true},{"actual":[[0,0,2],[1,0,4],[2,2,6],[4,0,6]],"check":"normal control 8","expected":[[0,0,2],[1,0,4],[2,2,6],[4,0,6]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trainee weight 1\", \"actual\": [], \"expected\": [[0, 3, 4]], \"passed\": false}, {\"check\": \"regression variant: trainee weight 2\", \"actual\": [[0, 2, 4]], \"expected\": [[0, 2, 4], [1, 3, 4]], \"passed\": false}, {\"check\": \"partial repair guard 3\", \"actual\": [[0, 0, 4], [1, 2, 4]], \"expected\": [[0, 0, 4], [1, 2, 4]], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [[0, 2, 4]], \"expected\": [[0, 2, 4]], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[4, 2, 6]], \"expected\": [[1, 5, 6], [4, 2, 6]], \"passed\": false}, {\"check\": \"normal control 6\", \"actual\": [[0, 0, 2], [2, 4, 6], [3, 4, 6]], \"expected\": [[0, 0, 2], [2, 4, 6], [3, 4, 6]], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[0, 0, 2], [1, 2, 4], [3, 2, 4]], \"expected\": [[0, 0, 2], [1, 2, 4], [3, 2, 4]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]], \"expected\": [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":46.142,"exit_code":0,"observations":[{"actual":[[0,3,4]],"check":"regression: trainee weight 1","expected":[[0,3,4]],"passed":true},{"actual":[[0,2,4],[1,3,4]],"check":"regression variant: trainee weight 2","expected":[[0,2,4],[1,3,4]],"passed":true},{"actual":[[0,0,4],[1,2,4]],"check":"partial repair guard 3","expected":[[0,0,4],[1,2,4]],"passed":true},{"actual":[[0,2,4]],"check":"boundary control 4","expected":[[0,2,4]],"passed":true},{"actual":[[1,5,6],[4,2,6]],"check":"normal control 5","expected":[[1,5,6],[4,2,6]],"passed":true},{"actual":[[0,0,2],[2,4,6],[3,4,6]],"check":"normal control 6","expected":[[0,0,2],[2,4,6],[3,4,6]],"passed":true},{"actual":[[0,0,2],[1,2,4],[3,2,4]],"check":"normal control 7","expected":[[0,0,2],[1,2,4],[3,2,4]],"passed":true},{"actual":[[0,0,2],[1,0,4],[2,2,6],[4,0,6]],"check":"normal control 8","expected":[[0,0,2],[1,0,4],[2,2,6],[4,0,6]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: trainee weight 1\", \"actual\": [[0, 3, 4]], \"expected\": [[0, 3, 4]], \"passed\": true}, {\"check\": \"regression variant: trainee weight 2\", \"actual\": [[0, 2, 4], [1, 3, 4]], \"expected\": [[0, 2, 4], [1, 3, 4]], \"passed\": true}, {\"check\": \"partial repair guard 3\", \"actual\": [[0, 0, 4], [1, 2, 4]], \"expected\": [[0, 0, 4], [1, 2, 4]], \"passed\": true}, {\"check\": \"boundary control 4\", \"actual\": [[0, 2, 4]], \"expected\": [[0, 2, 4]], \"passed\": true}, {\"check\": \"normal control 5\", \"actual\": [[1, 5, 6], [4, 2, 6]], \"expected\": [[1, 5, 6], [4, 2, 6]], \"passed\": true}, {\"check\": \"normal control 6\", \"actual\": [[0, 0, 2], [2, 4, 6], [3, 4, 6]], \"expected\": [[0, 0, 2], [2, 4, 6], [3, 4, 6]], \"passed\": true}, {\"check\": \"normal control 7\", \"actual\": [[0, 0, 2], [1, 2, 4], [3, 2, 4]], \"expected\": [[0, 0, 2], [1, 2, 4], [3, 2, 4]], \"passed\": true}, {\"check\": \"normal control 8\", \"actual\": [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]], \"expected\": [[0, 0, 2], [1, 0, 4], [2, 2, 6], [4, 0, 6]], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}