{"abstract":"After the first slots the depot stops charging anyone.","category":"EV charging session scheduling","checks":7,"contract":"fleet is [[id, need_units, depart_slot, max_units_per_slot]]. A vehicle is present in slots t < depart_slot. Each slot the site capacity site_units is granted in order of laxity (depart_slot - t - ceil(remaining/max_units)) ascending, ties by id; each vehicle gets min(max, remaining, capacity left). Return [[[id, remaining]] sorted by id, sorted ids with remaining > 0].","evaluation_group":"w2-ev_charging_session_scheduling-depot-least-laxity","failed_approach":"Rounding the budget down to a multiple of the present vehicles throws away capacity.","family":"w2-ev_charging_session_scheduling-depot-least-laxity-per-slot-capacity-reset","id":"FA-93121","implementations":{"attempt":{"sha256":"5919a0b03a034e5cf91cd681b9b67ff1b3942ff812eeda050d7e332fd42bd701","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(fleet, site_units, slots):\n    rem = {v[0]: v[1] for v in fleet}\n    for t in range(slots):\n        present = [v for v in fleet if v[2] > t and rem[v[0]] > 0]\n        def lax(v):\n            need_slots = -(-rem[v[0]] // v[3])\n            return (v[2] - t) - need_slots\n        present.sort(key=lambda v: (lax(v), v[0]))\n        cap = site_units // max(1, len(present)) * len(present)\n        for v in present:\n            give = min(v[3], rem[v[0]], cap)\n            rem[v[0]] -= give\n            cap -= give\n            if cap == 0:\n                break\n    missed = sorted(v[0] for v in fleet if rem[v[0]] > 0)\n    return [[[k, rem[k]] for k in sorted(rem)], missed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B2', 8, 6, 4], ['B1', 3, 8, 3], ['B3', 8, 6, 3], ['B0', 8, 9, 2], ['B4', 10, 3, 1]], 8, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0], ['B4', 7]], ['B4']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B2', 4, 8, 3], ['B0', 4, 7, 4], ['B1', 12, 4, 3]], 4, 4],\n   [[['B0', 0], ['B1', 0], ['B2', 4]], ['B2']]],\n  ['control 1', [[['B0', 4, 10, 3], ['B1', 4, 9, 3], ['B2', 1, 7, 3]], 7, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0]], []]],\n  ['control 2', [[['B0', 1, 9, 4], ['B1', 13, 10, 4]], 7, 6], [[['B0', 0], ['B1', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B0', 3, 5, 4], ['B1', 9, 3, 1], ['B2', 14, 7, 2], ['B3', 9, 6, 4], ['B4', 11, 5, 2]], 5, 5],\n   [[['B0', 0], ['B1', 6], ['B2', 6], ['B3', 8], ['B4', 1]], ['B1', 'B2', 'B3', 'B4']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 7, 4, 1], ['B1', 0, 1, 2], ['B2', 6, 3, 4]], 3, 6],\n   [[['B0', 3], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 1', [[['B1', 9, 10, 4], ['B3', 1, 1, 4], ['B0', 4, 10, 3], ['B2', 6, 10, 3]], 6, 4],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['control 2', [[['B0', 3, 6, 1]], 7, 10], [[['B0', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset', [[['B1', 7, 4, 3], ['B0', 14, 6, 2]], 3, 6],\n   [[['B0', 2], ['B1', 3]], ['B0', 'B1']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B3', 8, 1, 1], ['B0', 9, 10, 3], ['B2', 9, 4, 3], ['B1', 2, 6, 4]], 2, 4],\n   [[['B0', 9], ['B1', 2], ['B2', 2], ['B3', 7]], ['B0', 'B1', 'B2', 'B3']]],\n  ['control 1', [[['B1', 10, 10, 4], ['B2', 9, 9, 4], ['B0', 9, 4, 1]], 6, 9],\n   [[['B0', 5], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 2', [[['B0', 11, 5, 1]], 6, 4], [[['B0', 7]], ['B0']]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B2', 6, 1, 2], ['B0', 6, 3, 3], ['B1', 8, 9, 4]], 3, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 4]], ['B2']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 5, 9, 1], ['B2', 9, 6, 3], ['B1', 10, 7, 4]], 4, 6],\n   [[['B0', 1], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 1', [[['B2', 2, 6, 3], ['B1', 0, 4, 3], ['B0', 10, 8, 1]], 2, 9],\n   [[['B0', 2], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 2', [[['B2', 11, 5, 4], ['B0', 8, 10, 3], ['B1', 5, 5, 4]], 6, 9],\n   [[['B0', 0], ['B1', 0], ['B2', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B1', 3, 9, 3], ['B2', 0, 5, 4], ['B3', 4, 6, 2], ['B0', 4, 9, 3]], 7, 6],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 10, 8, 2], ['B1', 1, 2, 2], ['B2', 13, 3, 4], ['B4', 9, 8, 1], ['B3', 11, 8, 3]], 2,\n    10],\n   [[['B0', 6], ['B1', 1], ['B2', 8], ['B3', 9], ['B4', 4]], ['B0', 'B1', 'B2', 'B3', 'B4']]],\n  ['control 1', [[['B0', 14, 4, 4], ['B2', 2, 9, 3], ['B3', 2, 10, 2], ['B1', 6, 6, 4]], 8, 9],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['control 2', [[['B1', 10, 5, 4], ['B0', 14, 10, 4], ['B2', 9, 3, 3], ['B3', 8, 10, 2]], 6, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 1]], ['B3']]]]]\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":"b45b84859e9dd4c13b6c570c2ec20bff18317fb47d1631697bd6a04c77426e43","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(fleet, site_units, slots):\n    rem = {v[0]: v[1] for v in fleet}\n    cap = site_units\n    for t in range(slots):\n        present = [v for v in fleet if v[2] > t and rem[v[0]] > 0]\n        def lax(v):\n            need_slots = -(-rem[v[0]] // v[3])\n            return (v[2] - t) - need_slots\n        present.sort(key=lambda v: (lax(v), v[0]))\n        for v in present:\n            give = min(v[3], rem[v[0]], cap)\n            rem[v[0]] -= give\n            cap -= give\n            if cap == 0:\n                break\n    missed = sorted(v[0] for v in fleet if rem[v[0]] > 0)\n    return [[[k, rem[k]] for k in sorted(rem)], missed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B2', 8, 6, 4], ['B1', 3, 8, 3], ['B3', 8, 6, 3], ['B0', 8, 9, 2], ['B4', 10, 3, 1]], 8, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0], ['B4', 7]], ['B4']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B2', 4, 8, 3], ['B0', 4, 7, 4], ['B1', 12, 4, 3]], 4, 4],\n   [[['B0', 0], ['B1', 0], ['B2', 4]], ['B2']]],\n  ['control 1', [[['B0', 4, 10, 3], ['B1', 4, 9, 3], ['B2', 1, 7, 3]], 7, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0]], []]],\n  ['control 2', [[['B0', 1, 9, 4], ['B1', 13, 10, 4]], 7, 6], [[['B0', 0], ['B1', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B0', 3, 5, 4], ['B1', 9, 3, 1], ['B2', 14, 7, 2], ['B3', 9, 6, 4], ['B4', 11, 5, 2]], 5, 5],\n   [[['B0', 0], ['B1', 6], ['B2', 6], ['B3', 8], ['B4', 1]], ['B1', 'B2', 'B3', 'B4']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 7, 4, 1], ['B1', 0, 1, 2], ['B2', 6, 3, 4]], 3, 6],\n   [[['B0', 3], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 1', [[['B1', 9, 10, 4], ['B3', 1, 1, 4], ['B0', 4, 10, 3], ['B2', 6, 10, 3]], 6, 4],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['control 2', [[['B0', 3, 6, 1]], 7, 10], [[['B0', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset', [[['B1', 7, 4, 3], ['B0', 14, 6, 2]], 3, 6],\n   [[['B0', 2], ['B1', 3]], ['B0', 'B1']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B3', 8, 1, 1], ['B0', 9, 10, 3], ['B2', 9, 4, 3], ['B1', 2, 6, 4]], 2, 4],\n   [[['B0', 9], ['B1', 2], ['B2', 2], ['B3', 7]], ['B0', 'B1', 'B2', 'B3']]],\n  ['control 1', [[['B1', 10, 10, 4], ['B2', 9, 9, 4], ['B0', 9, 4, 1]], 6, 9],\n   [[['B0', 5], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 2', [[['B0', 11, 5, 1]], 6, 4], [[['B0', 7]], ['B0']]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B2', 6, 1, 2], ['B0', 6, 3, 3], ['B1', 8, 9, 4]], 3, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 4]], ['B2']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 5, 9, 1], ['B2', 9, 6, 3], ['B1', 10, 7, 4]], 4, 6],\n   [[['B0', 1], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 1', [[['B2', 2, 6, 3], ['B1', 0, 4, 3], ['B0', 10, 8, 1]], 2, 9],\n   [[['B0', 2], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 2', [[['B2', 11, 5, 4], ['B0', 8, 10, 3], ['B1', 5, 5, 4]], 6, 9],\n   [[['B0', 0], ['B1', 0], ['B2', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B1', 3, 9, 3], ['B2', 0, 5, 4], ['B3', 4, 6, 2], ['B0', 4, 9, 3]], 7, 6],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 10, 8, 2], ['B1', 1, 2, 2], ['B2', 13, 3, 4], ['B4', 9, 8, 1], ['B3', 11, 8, 3]], 2,\n    10],\n   [[['B0', 6], ['B1', 1], ['B2', 8], ['B3', 9], ['B4', 4]], ['B0', 'B1', 'B2', 'B3', 'B4']]],\n  ['control 1', [[['B0', 14, 4, 4], ['B2', 2, 9, 3], ['B3', 2, 10, 2], ['B1', 6, 6, 4]], 8, 9],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['control 2', [[['B1', 10, 5, 4], ['B0', 14, 10, 4], ['B2', 9, 3, 3], ['B3', 8, 10, 2]], 6, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 1]], ['B3']]]]]\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":"b57126535e3f92df8eec1fa163f0e7be4449e6040092bdc32e17671ef9bf8b72","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(fleet, site_units, slots):\n    rem = {v[0]: v[1] for v in fleet}\n    for t in range(slots):\n        present = [v for v in fleet if v[2] > t and rem[v[0]] > 0]\n        def lax(v):\n            need_slots = -(-rem[v[0]] // v[3])\n            return (v[2] - t) - need_slots\n        present.sort(key=lambda v: (lax(v), v[0]))\n        cap = site_units\n        for v in present:\n            give = min(v[3], rem[v[0]], cap)\n            rem[v[0]] -= give\n            cap -= give\n            if cap == 0:\n                break\n    missed = sorted(v[0] for v in fleet if rem[v[0]] > 0)\n    return [[[k, rem[k]] for k in sorted(rem)], missed]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B2', 8, 6, 4], ['B1', 3, 8, 3], ['B3', 8, 6, 3], ['B0', 8, 9, 2], ['B4', 10, 3, 1]], 8, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0], ['B4', 7]], ['B4']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B2', 4, 8, 3], ['B0', 4, 7, 4], ['B1', 12, 4, 3]], 4, 4],\n   [[['B0', 0], ['B1', 0], ['B2', 4]], ['B2']]],\n  ['control 1', [[['B0', 4, 10, 3], ['B1', 4, 9, 3], ['B2', 1, 7, 3]], 7, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0]], []]],\n  ['control 2', [[['B0', 1, 9, 4], ['B1', 13, 10, 4]], 7, 6], [[['B0', 0], ['B1', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B0', 3, 5, 4], ['B1', 9, 3, 1], ['B2', 14, 7, 2], ['B3', 9, 6, 4], ['B4', 11, 5, 2]], 5, 5],\n   [[['B0', 0], ['B1', 6], ['B2', 6], ['B3', 8], ['B4', 1]], ['B1', 'B2', 'B3', 'B4']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 7, 4, 1], ['B1', 0, 1, 2], ['B2', 6, 3, 4]], 3, 6],\n   [[['B0', 3], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 1', [[['B1', 9, 10, 4], ['B3', 1, 1, 4], ['B0', 4, 10, 3], ['B2', 6, 10, 3]], 6, 4],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['control 2', [[['B0', 3, 6, 1]], 7, 10], [[['B0', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset', [[['B1', 7, 4, 3], ['B0', 14, 6, 2]], 3, 6],\n   [[['B0', 2], ['B1', 3]], ['B0', 'B1']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B3', 8, 1, 1], ['B0', 9, 10, 3], ['B2', 9, 4, 3], ['B1', 2, 6, 4]], 2, 4],\n   [[['B0', 9], ['B1', 2], ['B2', 2], ['B3', 7]], ['B0', 'B1', 'B2', 'B3']]],\n  ['control 1', [[['B1', 10, 10, 4], ['B2', 9, 9, 4], ['B0', 9, 4, 1]], 6, 9],\n   [[['B0', 5], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 2', [[['B0', 11, 5, 1]], 6, 4], [[['B0', 7]], ['B0']]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B2', 6, 1, 2], ['B0', 6, 3, 3], ['B1', 8, 9, 4]], 3, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 4]], ['B2']]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 5, 9, 1], ['B2', 9, 6, 3], ['B1', 10, 7, 4]], 4, 6],\n   [[['B0', 1], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 1', [[['B2', 2, 6, 3], ['B1', 0, 4, 3], ['B0', 10, 8, 1]], 2, 9],\n   [[['B0', 2], ['B1', 0], ['B2', 0]], ['B0']]],\n  ['control 2', [[['B2', 11, 5, 4], ['B0', 8, 10, 3], ['B1', 5, 5, 4]], 6, 9],\n   [[['B0', 0], ['B1', 0], ['B2', 0]], []]]],\n [['boundary: departs at slot 1', [[['A', 4, 1, 2], ['B', 2, 5, 2]], 2, 3],\n   [[['A', 2], ['B', 0]], ['A']]],\n  ['boundary: exact capacity fit', [[['A', 2, 2, 1], ['B', 2, 2, 1]], 2, 3],\n   [[['A', 0], ['B', 0]], []]],\n  ['boundary: empty fleet', [[], 5, 3], [[], []]],\n  ['regression: per-slot capacity reset',\n   [[['B1', 3, 9, 3], ['B2', 0, 5, 4], ['B3', 4, 6, 2], ['B0', 4, 9, 3]], 7, 6],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['regression: per-slot capacity reset (partial repair)',\n   [[['B0', 10, 8, 2], ['B1', 1, 2, 2], ['B2', 13, 3, 4], ['B4', 9, 8, 1], ['B3', 11, 8, 3]], 2,\n    10],\n   [[['B0', 6], ['B1', 1], ['B2', 8], ['B3', 9], ['B4', 4]], ['B0', 'B1', 'B2', 'B3', 'B4']]],\n  ['control 1', [[['B0', 14, 4, 4], ['B2', 2, 9, 3], ['B3', 2, 10, 2], ['B1', 6, 6, 4]], 8, 9],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 0]], []]],\n  ['control 2', [[['B1', 10, 5, 4], ['B0', 14, 10, 4], ['B2', 9, 3, 3], ['B3', 8, 10, 2]], 6, 7],\n   [[['B0', 0], ['B1', 0], ['B2', 0], ['B3', 1]], ['B3']]]]]\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":"Deterministic stipulated toy contract for teaching; no claim of conformance with any standard, vendor protocol or production controller. 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-ev_charging_session_scheduling-depot-least-laxity-per-slot-capacity-reset","generated_at":"2026-09-29T14:51:52.314502+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Depot, workplace and public EV chargers schedule sessions against prices, circuit limits and departure deadlines; a wrong decision silently strands a driver or overloads a feeder.","repair":"Reset the capacity budget at every slot.","root_cause":"The site capacity budget is initialised once for the horizon instead of per slot.","sha256":"5db3fa16bfad31cc8d0c90437ad70e192c522ad42a1bba03f466a5cccbaa02e6","title":"Depot least-laxity-first charging: per-slot capacity reset · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":47.806,"exit_code":1,"observations":[{"actual":[[["A",2],["B",0]],["A"]],"check":"boundary: departs at slot 1","expected":[[["A",2],["B",0]],["A"]],"passed":true},{"actual":[[["A",0],["B",0]],[]],"check":"boundary: exact capacity fit","expected":[[["A",0],["B",0]],[]],"passed":true},{"actual":[[],[]],"check":"boundary: empty fleet","expected":[[],[]],"passed":true},{"actual":[[["B0",0],["B1",0],["B2",0],["B3",0],["B4",7]],["B4"]],"check":"regression: per-slot capacity reset","expected":[[["B0",0],["B1",0],["B2",0],["B3",0],["B4",7]],["B4"]],"passed":true},{"actual":[[["B0",4],["B1",0],["B2",4]],["B0","B2"]],"check":"regression: per-slot capacity reset (partial repair)","expected":[[["B0",0],["B1",0],["B2",4]],["B2"]],"passed":false},{"actual":[[["B0",0],["B1",0],["B2",0]],[]],"check":"control 1","expected":[[["B0",0],["B1",0],["B2",0]],[]],"passed":true},{"actual":[[["B0",0],["B1",0]],[]],"check":"control 2","expected":[[["B0",0],["B1",0]],[]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boundary: departs at slot 1\", \"actual\": [[[\"A\", 2], [\"B\", 0]], [\"A\"]], \"expected\": [[[\"A\", 2], [\"B\", 0]], [\"A\"]], \"passed\": true}, {\"check\": \"boundary: exact capacity fit\", \"actual\": [[[\"A\", 0], [\"B\", 0]], []], \"expected\": [[[\"A\", 0], [\"B\", 0]], []], \"passed\": true}, {\"check\": \"boundary: empty fleet\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}, {\"check\": \"regression: per-slot capacity reset\", \"actual\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0], [\"B3\", 0], [\"B4\", 7]], [\"B4\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0], [\"B3\", 0], [\"B4\", 7]], [\"B4\"]], \"passed\": true}, {\"check\": \"regression: per-slot capacity reset (partial repair)\", \"actual\": [[[\"B0\", 4], [\"B1\", 0], [\"B2\", 4]], [\"B0\", \"B2\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 4]], [\"B2\"]], \"passed\": false}, {\"check\": \"control 1\", \"actual\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0]], []], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0]], []], \"passed\": true}, {\"check\": \"control 2\", \"actual\": [[[\"B0\", 0], [\"B1\", 0]], []], \"expected\": [[[\"B0\", 0], [\"B1\", 0]], []], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.866,"exit_code":1,"observations":[{"actual":[[["A",2],["B",2]],["A","B"]],"check":"boundary: departs at slot 1","expected":[[["A",2],["B",0]],["A"]],"passed":false},{"actual":[[["A",1],["B",1]],["A","B"]],"check":"boundary: exact capacity fit","expected":[[["A",0],["B",0]],[]],"passed":false},{"actual":[[],[]],"check":"boundary: empty fleet","expected":[[],[]],"passed":true},{"actual":[[["B0",8],["B1",3],["B2",4],["B3",5],["B4",9]],["B0","B1","B2","B3","B4"]],"check":"regression: per-slot capacity reset","expected":[[["B0",0],["B1",0],["B2",0],["B3",0],["B4",7]],["B4"]],"passed":false},{"actual":[[["B0",3],["B1",9],["B2",4]],["B0","B1","B2"]],"check":"regression: per-slot capacity reset (partial repair)","expected":[[["B0",0],["B1",0],["B2",4]],["B2"]],"passed":false},{"actual":[[["B0",1],["B1",1],["B2",0]],["B0","B1"]],"check":"control 1","expected":[[["B0",0],["B1",0],["B2",0]],[]],"passed":false},{"actual":[[["B0",0],["B1",7]],["B1"]],"check":"control 2","expected":[[["B0",0],["B1",0]],[]],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boundary: departs at slot 1\", \"actual\": [[[\"A\", 2], [\"B\", 2]], [\"A\", \"B\"]], \"expected\": [[[\"A\", 2], [\"B\", 0]], [\"A\"]], \"passed\": false}, {\"check\": \"boundary: exact capacity fit\", \"actual\": [[[\"A\", 1], [\"B\", 1]], [\"A\", \"B\"]], \"expected\": [[[\"A\", 0], [\"B\", 0]], []], \"passed\": false}, {\"check\": \"boundary: empty fleet\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}, {\"check\": \"regression: per-slot capacity reset\", \"actual\": [[[\"B0\", 8], [\"B1\", 3], [\"B2\", 4], [\"B3\", 5], [\"B4\", 9]], [\"B0\", \"B1\", \"B2\", \"B3\", \"B4\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0], [\"B3\", 0], [\"B4\", 7]], [\"B4\"]], \"passed\": false}, {\"check\": \"regression: per-slot capacity reset (partial repair)\", \"actual\": [[[\"B0\", 3], [\"B1\", 9], [\"B2\", 4]], [\"B0\", \"B1\", \"B2\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 4]], [\"B2\"]], \"passed\": false}, {\"check\": \"control 1\", \"actual\": [[[\"B0\", 1], [\"B1\", 1], [\"B2\", 0]], [\"B0\", \"B1\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0]], []], \"passed\": false}, {\"check\": \"control 2\", \"actual\": [[[\"B0\", 0], [\"B1\", 7]], [\"B1\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0]], []], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.673,"exit_code":0,"observations":[{"actual":[[["A",2],["B",0]],["A"]],"check":"boundary: departs at slot 1","expected":[[["A",2],["B",0]],["A"]],"passed":true},{"actual":[[["A",0],["B",0]],[]],"check":"boundary: exact capacity fit","expected":[[["A",0],["B",0]],[]],"passed":true},{"actual":[[],[]],"check":"boundary: empty fleet","expected":[[],[]],"passed":true},{"actual":[[["B0",0],["B1",0],["B2",0],["B3",0],["B4",7]],["B4"]],"check":"regression: per-slot capacity reset","expected":[[["B0",0],["B1",0],["B2",0],["B3",0],["B4",7]],["B4"]],"passed":true},{"actual":[[["B0",0],["B1",0],["B2",4]],["B2"]],"check":"regression: per-slot capacity reset (partial repair)","expected":[[["B0",0],["B1",0],["B2",4]],["B2"]],"passed":true},{"actual":[[["B0",0],["B1",0],["B2",0]],[]],"check":"control 1","expected":[[["B0",0],["B1",0],["B2",0]],[]],"passed":true},{"actual":[[["B0",0],["B1",0]],[]],"check":"control 2","expected":[[["B0",0],["B1",0]],[]],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"boundary: departs at slot 1\", \"actual\": [[[\"A\", 2], [\"B\", 0]], [\"A\"]], \"expected\": [[[\"A\", 2], [\"B\", 0]], [\"A\"]], \"passed\": true}, {\"check\": \"boundary: exact capacity fit\", \"actual\": [[[\"A\", 0], [\"B\", 0]], []], \"expected\": [[[\"A\", 0], [\"B\", 0]], []], \"passed\": true}, {\"check\": \"boundary: empty fleet\", \"actual\": [[], []], \"expected\": [[], []], \"passed\": true}, {\"check\": \"regression: per-slot capacity reset\", \"actual\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0], [\"B3\", 0], [\"B4\", 7]], [\"B4\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0], [\"B3\", 0], [\"B4\", 7]], [\"B4\"]], \"passed\": true}, {\"check\": \"regression: per-slot capacity reset (partial repair)\", \"actual\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 4]], [\"B2\"]], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 4]], [\"B2\"]], \"passed\": true}, {\"check\": \"control 1\", \"actual\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0]], []], \"expected\": [[[\"B0\", 0], [\"B1\", 0], [\"B2\", 0]], []], \"passed\": true}, {\"check\": \"control 2\", \"actual\": [[[\"B0\", 0], [\"B1\", 0]], []], \"expected\": [[[\"B0\", 0], [\"B1\", 0]], []], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}