{"abstract":"An UNTIL head series still includes the split occurrence.","category":"Calendar recurrence rules","checks":7,"contract":"A daily-interval series (dtstart, interval, and either count or until). Editing from 0-based occurrence k splits it: the head keeps occurrences 0..k-1 (count k, or until = its last retained occurrence date) and the tail starts at the original date of occurrence k with new_interval and the remaining count (or the original until). k <= 0 makes the head None; a split at or past the end makes the tail None. Return {\"head\": [dtstart, count, until] or None, \"tail\": [start, interval, count, until] or None}.","contract_signature":"dtstart, interval, count, until, k, new_interval","evaluation_group":"w2-calendar-recurrence-rules-this-and-following-split","failed_approach":"The partial repair `start + dt.timedelta(days=(k - 1) * new_interval)` computes the last retained occurrence with the new interval.","family":"w2-calendar-recurrence-rules-this-and-following-split-head-until","id":"FA-77036","implementations":{"attempt":{"sha256":"207542e4ae7846c83ce0c25b097bee2eeb597402b5a1dcd5f588d091701672f2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, interval, count, until, k, new_interval):\n    start = dt.date.fromisoformat(dtstart)\n    until_d = dt.date.fromisoformat(until) if until else None\n    tail_start = start + dt.timedelta(days=k * interval)\n    if (count is not None and k >= count) or (until_d is not None and tail_start > until_d):\n        tail = None\n    else:\n        tail = [tail_start.isoformat(), new_interval, count - k if count is not None else None, until]\n    if k <= 0:\n        head = None\n    elif count is not None:\n        head = [dtstart, k, None]\n    else:\n        head = [dtstart, None, (start + dt.timedelta(days=(k - 1) * new_interval)).isoformat()]\n    return {'head': head, 'tail': tail}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: count series split at 3',\n   ['2024-01-01', 2, 10, None, 3, 7],\n   {'head': ['2024-01-01', 3, None], 'tail': ['2024-01-07', 7, 7, None]}),\n  ('until series split at 2',\n   ['2024-01-01', 3, None, '2024-02-01', 2, 1],\n   {'head': ['2024-01-01', None, '2024-01-04'], 'tail': ['2024-01-07', 1, None, '2024-02-01']}),\n  ('split at first occurrence',\n   ['2024-01-01', 1, 5, None, 0, 2],\n   {'head': None, 'tail': ['2024-01-01', 2, 5, None]}),\n  ('until split at first',\n   ['2024-03-01', 7, None, '2024-06-01', 0, 14],\n   {'head': None, 'tail': ['2024-03-01', 14, None, '2024-06-01']}),\n  ('split exactly at count',\n   ['2024-01-01', 1, 4, None, 4, 2],\n   {'head': ['2024-01-01', 4, None], 'tail': None}),\n  ('split past until',\n   ['2024-01-01', 5, None, '2024-01-20', 5, 2],\n   {'head': ['2024-01-01', None, '2024-01-21'], 'tail': None}),\n  ('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']})],\n [('split at first occurrence',\n   ['2024-01-01', 1, 5, None, 0, 2],\n   {'head': None, 'tail': ['2024-01-01', 2, 5, None]}),\n  ('until split at first',\n   ['2024-03-01', 7, None, '2024-06-01', 0, 14],\n   {'head': None, 'tail': ['2024-03-01', 14, None, '2024-06-01']}),\n  ('split exactly at count',\n   ['2024-01-01', 1, 4, None, 4, 2],\n   {'head': ['2024-01-01', 4, None], 'tail': None}),\n  ('split past until',\n   ['2024-01-01', 5, None, '2024-01-20', 5, 2],\n   {'head': ['2024-01-01', None, '2024-01-21'], 'tail': None}),\n  ('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']}),\n  ('count split near end',\n   ['2024-05-10', 1, 6, None, 5, 3],\n   {'head': ['2024-05-10', 5, None], 'tail': ['2024-05-15', 3, 1, None]}),\n  ('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']})],\n [('split exactly at count',\n   ['2024-01-01', 1, 4, None, 4, 2],\n   {'head': ['2024-01-01', 4, None], 'tail': None}),\n  ('split past until',\n   ['2024-01-01', 5, None, '2024-01-20', 5, 2],\n   {'head': ['2024-01-01', None, '2024-01-21'], 'tail': None}),\n  ('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']}),\n  ('count split near end',\n   ['2024-05-10', 1, 6, None, 5, 3],\n   {'head': ['2024-05-10', 5, None], 'tail': ['2024-05-15', 3, 1, None]}),\n  ('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']}),\n  ('interval 1 count split',\n   ['2024-12-30', 1, 8, None, 2, 1],\n   {'head': ['2024-12-30', 2, None], 'tail': ['2025-01-01', 1, 6, None]}),\n  ('split beyond count', ['2024-01-01', 1, 3, None, 7, 2], {'head': ['2024-01-01', 7, None], 'tail': None})],\n [('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']}),\n  ('count split near end',\n   ['2024-05-10', 1, 6, None, 5, 3],\n   {'head': ['2024-05-10', 5, None], 'tail': ['2024-05-15', 3, 1, None]}),\n  ('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']}),\n  ('interval 1 count split',\n   ['2024-12-30', 1, 8, None, 2, 1],\n   {'head': ['2024-12-30', 2, None], 'tail': ['2025-01-01', 1, 6, None]}),\n  ('split beyond count', ['2024-01-01', 1, 3, None, 7, 2], {'head': ['2024-01-01', 7, None], 'tail': None}),\n  ('regression: count series split at 3',\n   ['2024-01-01', 2, 10, None, 3, 7],\n   {'head': ['2024-01-01', 3, None], 'tail': ['2024-01-07', 7, 7, None]}),\n  ('until series split at 2',\n   ['2024-01-01', 3, None, '2024-02-01', 2, 1],\n   {'head': ['2024-01-01', None, '2024-01-04'], 'tail': ['2024-01-07', 1, None, '2024-02-01']})],\n [('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']}),\n  ('interval 1 count split',\n   ['2024-12-30', 1, 8, None, 2, 1],\n   {'head': ['2024-12-30', 2, None], 'tail': ['2025-01-01', 1, 6, None]}),\n  ('split beyond count', ['2024-01-01', 1, 3, None, 7, 2], {'head': ['2024-01-01', 7, None], 'tail': None}),\n  ('regression: count series split at 3',\n   ['2024-01-01', 2, 10, None, 3, 7],\n   {'head': ['2024-01-01', 3, None], 'tail': ['2024-01-07', 7, 7, None]}),\n  ('until series split at 2',\n   ['2024-01-01', 3, None, '2024-02-01', 2, 1],\n   {'head': ['2024-01-01', None, '2024-01-04'], 'tail': ['2024-01-07', 1, None, '2024-02-01']}),\n  ('split at first occurrence',\n   ['2024-01-01', 1, 5, None, 0, 2],\n   {'head': None, 'tail': ['2024-01-01', 2, 5, None]}),\n  ('until split at first',\n   ['2024-03-01', 7, None, '2024-06-01', 0, 14],\n   {'head': None, 'tail': ['2024-03-01', 14, None, '2024-06-01']})]]\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":"2aa9bcecf6660f4ba00a719b5af43693e921bf3d8c5cd1097994266e504f4283","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, interval, count, until, k, new_interval):\n    start = dt.date.fromisoformat(dtstart)\n    until_d = dt.date.fromisoformat(until) if until else None\n    tail_start = start + dt.timedelta(days=k * interval)\n    if (count is not None and k >= count) or (until_d is not None and tail_start > until_d):\n        tail = None\n    else:\n        tail = [tail_start.isoformat(), new_interval, count - k if count is not None else None, until]\n    if k <= 0:\n        head = None\n    elif count is not None:\n        head = [dtstart, k, None]\n    else:\n        head = [dtstart, None, (tail_start).isoformat()]\n    return {'head': head, 'tail': tail}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: count series split at 3',\n   ['2024-01-01', 2, 10, None, 3, 7],\n   {'head': ['2024-01-01', 3, None], 'tail': ['2024-01-07', 7, 7, None]}),\n  ('until series split at 2',\n   ['2024-01-01', 3, None, '2024-02-01', 2, 1],\n   {'head': ['2024-01-01', None, '2024-01-04'], 'tail': ['2024-01-07', 1, None, '2024-02-01']}),\n  ('split at first occurrence',\n   ['2024-01-01', 1, 5, None, 0, 2],\n   {'head': None, 'tail': ['2024-01-01', 2, 5, None]}),\n  ('until split at first',\n   ['2024-03-01', 7, None, '2024-06-01', 0, 14],\n   {'head': None, 'tail': ['2024-03-01', 14, None, '2024-06-01']}),\n  ('split exactly at count',\n   ['2024-01-01', 1, 4, None, 4, 2],\n   {'head': ['2024-01-01', 4, None], 'tail': None}),\n  ('split past until',\n   ['2024-01-01', 5, None, '2024-01-20', 5, 2],\n   {'head': ['2024-01-01', None, '2024-01-21'], 'tail': None}),\n  ('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']})],\n [('split at first occurrence',\n   ['2024-01-01', 1, 5, None, 0, 2],\n   {'head': None, 'tail': ['2024-01-01', 2, 5, None]}),\n  ('until split at first',\n   ['2024-03-01', 7, None, '2024-06-01', 0, 14],\n   {'head': None, 'tail': ['2024-03-01', 14, None, '2024-06-01']}),\n  ('split exactly at count',\n   ['2024-01-01', 1, 4, None, 4, 2],\n   {'head': ['2024-01-01', 4, None], 'tail': None}),\n  ('split past until',\n   ['2024-01-01', 5, None, '2024-01-20', 5, 2],\n   {'head': ['2024-01-01', None, '2024-01-21'], 'tail': None}),\n  ('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']}),\n  ('count split near end',\n   ['2024-05-10', 1, 6, None, 5, 3],\n   {'head': ['2024-05-10', 5, None], 'tail': ['2024-05-15', 3, 1, None]}),\n  ('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']})],\n [('split exactly at count',\n   ['2024-01-01', 1, 4, None, 4, 2],\n   {'head': ['2024-01-01', 4, None], 'tail': None}),\n  ('split past until',\n   ['2024-01-01', 5, None, '2024-01-20', 5, 2],\n   {'head': ['2024-01-01', None, '2024-01-21'], 'tail': None}),\n  ('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']}),\n  ('count split near end',\n   ['2024-05-10', 1, 6, None, 5, 3],\n   {'head': ['2024-05-10', 5, None], 'tail': ['2024-05-15', 3, 1, None]}),\n  ('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']}),\n  ('interval 1 count split',\n   ['2024-12-30', 1, 8, None, 2, 1],\n   {'head': ['2024-12-30', 2, None], 'tail': ['2025-01-01', 1, 6, None]}),\n  ('split beyond count', ['2024-01-01', 1, 3, None, 7, 2], {'head': ['2024-01-01', 7, None], 'tail': None})],\n [('split at last until occurrence',\n   ['2024-01-01', 5, None, '2024-01-21', 4, 1],\n   {'head': ['2024-01-01', None, '2024-01-16'], 'tail': ['2024-01-21', 1, None, '2024-01-21']}),\n  ('count split near end',\n   ['2024-05-10', 1, 6, None, 5, 3],\n   {'head': ['2024-05-10', 5, None], 'tail': ['2024-05-15', 3, 1, None]}),\n  ('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']}),\n  ('interval 1 count split',\n   ['2024-12-30', 1, 8, None, 2, 1],\n   {'head': ['2024-12-30', 2, None], 'tail': ['2025-01-01', 1, 6, None]}),\n  ('split beyond count', ['2024-01-01', 1, 3, None, 7, 2], {'head': ['2024-01-01', 7, None], 'tail': None}),\n  ('regression: count series split at 3',\n   ['2024-01-01', 2, 10, None, 3, 7],\n   {'head': ['2024-01-01', 3, None], 'tail': ['2024-01-07', 7, 7, None]}),\n  ('until series split at 2',\n   ['2024-01-01', 3, None, '2024-02-01', 2, 1],\n   {'head': ['2024-01-01', None, '2024-01-04'], 'tail': ['2024-01-07', 1, None, '2024-02-01']})],\n [('until split mid',\n   ['2024-05-10', 4, None, '2024-07-01', 6, 2],\n   {'head': ['2024-05-10', None, '2024-05-30'], 'tail': ['2024-06-03', 2, None, '2024-07-01']}),\n  ('interval 1 count split',\n   ['2024-12-30', 1, 8, None, 2, 1],\n   {'head': ['2024-12-30', 2, None], 'tail': ['2025-01-01', 1, 6, None]}),\n  ('split beyond count', ['2024-01-01', 1, 3, None, 7, 2], {'head': ['2024-01-01', 7, None], 'tail': None}),\n  ('regression: count series split at 3',\n   ['2024-01-01', 2, 10, None, 3, 7],\n   {'head': ['2024-01-01', 3, None], 'tail': ['2024-01-07', 7, 7, None]}),\n  ('until series split at 2',\n   ['2024-01-01', 3, None, '2024-02-01', 2, 1],\n   {'head': ['2024-01-01', None, '2024-01-04'], 'tail': ['2024-01-07', 1, None, '2024-02-01']}),\n  ('split at first occurrence',\n   ['2024-01-01', 1, 5, None, 0, 2],\n   {'head': None, 'tail': ['2024-01-01', 2, 5, None]}),\n  ('until split at first',\n   ['2024-03-01', 7, None, '2024-06-01', 0, 14],\n   {'head': None, 'tail': ['2024-03-01', 14, None, '2024-06-01']})]]\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, bounded recurrence-expansion model evaluated offline on explicit fixtures; it is not a complete iCalendar implementation and makes no claim of standards conformance. 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-calendar-recurrence-rules-this-and-following-split-head-until","generated_at":"2026-09-29T14:49:21.809009+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Recurring calendar series are expanded into concrete instances for display, reminders and conflict checks.","root_cause":"The head UNTIL is set to the split occurrence date itself.","sha256":"12da1166c3184cc020c22fa4368a7405d5366c378707201c143c9886e589255c","title":"Splitting a series for a this-and-following edit: head until · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.719,"exit_code":1,"observations":[{"actual":{"head":["2024-01-01",3,null],"tail":["2024-01-07",7,7,null]},"check":"regression: count series split at 3","expected":{"head":["2024-01-01",3,null],"tail":["2024-01-07",7,7,null]},"passed":true},{"actual":{"head":["2024-01-01",null,"2024-01-02"],"tail":["2024-01-07",1,null,"2024-02-01"]},"check":"until series split at 2","expected":{"head":["2024-01-01",null,"2024-01-04"],"tail":["2024-01-07",1,null,"2024-02-01"]},"passed":false},{"actual":{"head":null,"tail":["2024-01-01",2,5,null]},"check":"split at first occurrence","expected":{"head":null,"tail":["2024-01-01",2,5,null]},"passed":true},{"actual":{"head":null,"tail":["2024-03-01",14,null,"2024-06-01"]},"check":"until split at first","expected":{"head":null,"tail":["2024-03-01",14,null,"2024-06-01"]},"passed":true},{"actual":{"head":["2024-01-01",4,null],"tail":null},"check":"split exactly at count","expected":{"head":["2024-01-01",4,null],"tail":null},"passed":true},{"actual":{"head":["2024-01-01",null,"2024-01-09"],"tail":null},"check":"split past until","expected":{"head":["2024-01-01",null,"2024-01-21"],"tail":null},"passed":false},{"actual":{"head":["2024-01-01",null,"2024-01-04"],"tail":["2024-01-21",1,null,"2024-01-21"]},"check":"split at last until occurrence","expected":{"head":["2024-01-01",null,"2024-01-16"],"tail":["2024-01-21",1,null,"2024-01-21"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: count series split at 3\", \"actual\": {\"head\": [\"2024-01-01\", 3, null], \"tail\": [\"2024-01-07\", 7, 7, null]}, \"expected\": {\"head\": [\"2024-01-01\", 3, null], \"tail\": [\"2024-01-07\", 7, 7, null]}, \"passed\": true}, {\"check\": \"until series split at 2\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-02\"], \"tail\": [\"2024-01-07\", 1, null, \"2024-02-01\"]}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-04\"], \"tail\": [\"2024-01-07\", 1, null, \"2024-02-01\"]}, \"passed\": false}, {\"check\": \"split at first occurrence\", \"actual\": {\"head\": null, \"tail\": [\"2024-01-01\", 2, 5, null]}, \"expected\": {\"head\": null, \"tail\": [\"2024-01-01\", 2, 5, null]}, \"passed\": true}, {\"check\": \"until split at first\", \"actual\": {\"head\": null, \"tail\": [\"2024-03-01\", 14, null, \"2024-06-01\"]}, \"expected\": {\"head\": null, \"tail\": [\"2024-03-01\", 14, null, \"2024-06-01\"]}, \"passed\": true}, {\"check\": \"split exactly at count\", \"actual\": {\"head\": [\"2024-01-01\", 4, null], \"tail\": null}, \"expected\": {\"head\": [\"2024-01-01\", 4, null], \"tail\": null}, \"passed\": true}, {\"check\": \"split past until\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-09\"], \"tail\": null}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-21\"], \"tail\": null}, \"passed\": false}, {\"check\": \"split at last until occurrence\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-04\"], \"tail\": [\"2024-01-21\", 1, null, \"2024-01-21\"]}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-16\"], \"tail\": [\"2024-01-21\", 1, null, \"2024-01-21\"]}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.359,"exit_code":1,"observations":[{"actual":{"head":["2024-01-01",3,null],"tail":["2024-01-07",7,7,null]},"check":"regression: count series split at 3","expected":{"head":["2024-01-01",3,null],"tail":["2024-01-07",7,7,null]},"passed":true},{"actual":{"head":["2024-01-01",null,"2024-01-07"],"tail":["2024-01-07",1,null,"2024-02-01"]},"check":"until series split at 2","expected":{"head":["2024-01-01",null,"2024-01-04"],"tail":["2024-01-07",1,null,"2024-02-01"]},"passed":false},{"actual":{"head":null,"tail":["2024-01-01",2,5,null]},"check":"split at first occurrence","expected":{"head":null,"tail":["2024-01-01",2,5,null]},"passed":true},{"actual":{"head":null,"tail":["2024-03-01",14,null,"2024-06-01"]},"check":"until split at first","expected":{"head":null,"tail":["2024-03-01",14,null,"2024-06-01"]},"passed":true},{"actual":{"head":["2024-01-01",4,null],"tail":null},"check":"split exactly at count","expected":{"head":["2024-01-01",4,null],"tail":null},"passed":true},{"actual":{"head":["2024-01-01",null,"2024-01-26"],"tail":null},"check":"split past until","expected":{"head":["2024-01-01",null,"2024-01-21"],"tail":null},"passed":false},{"actual":{"head":["2024-01-01",null,"2024-01-21"],"tail":["2024-01-21",1,null,"2024-01-21"]},"check":"split at last until occurrence","expected":{"head":["2024-01-01",null,"2024-01-16"],"tail":["2024-01-21",1,null,"2024-01-21"]},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: count series split at 3\", \"actual\": {\"head\": [\"2024-01-01\", 3, null], \"tail\": [\"2024-01-07\", 7, 7, null]}, \"expected\": {\"head\": [\"2024-01-01\", 3, null], \"tail\": [\"2024-01-07\", 7, 7, null]}, \"passed\": true}, {\"check\": \"until series split at 2\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-07\"], \"tail\": [\"2024-01-07\", 1, null, \"2024-02-01\"]}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-04\"], \"tail\": [\"2024-01-07\", 1, null, \"2024-02-01\"]}, \"passed\": false}, {\"check\": \"split at first occurrence\", \"actual\": {\"head\": null, \"tail\": [\"2024-01-01\", 2, 5, null]}, \"expected\": {\"head\": null, \"tail\": [\"2024-01-01\", 2, 5, null]}, \"passed\": true}, {\"check\": \"until split at first\", \"actual\": {\"head\": null, \"tail\": [\"2024-03-01\", 14, null, \"2024-06-01\"]}, \"expected\": {\"head\": null, \"tail\": [\"2024-03-01\", 14, null, \"2024-06-01\"]}, \"passed\": true}, {\"check\": \"split exactly at count\", \"actual\": {\"head\": [\"2024-01-01\", 4, null], \"tail\": null}, \"expected\": {\"head\": [\"2024-01-01\", 4, null], \"tail\": null}, \"passed\": true}, {\"check\": \"split past until\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-26\"], \"tail\": null}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-21\"], \"tail\": null}, \"passed\": false}, {\"check\": \"split at last until occurrence\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-21\"], \"tail\": [\"2024-01-21\", 1, null, \"2024-01-21\"]}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-16\"], \"tail\": [\"2024-01-21\", 1, null, \"2024-01-21\"]}, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}