{"abstract":"Splitting after the last occurrence of an UNTIL series creates an empty tail series past UNTIL.","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 `(count is not None and k > count) or (until_d is not None and tail_start > until_d)` uses a strict comparison, so a split exactly at COUNT still creates a zero-count tail.","family":"w2-calendar-recurrence-rules-this-and-following-split-split-beyond-end","id":"FA-77016","implementations":{"attempt":{"sha256":"cedf2dd9e1918e057db8591a6341b7e81bac78e2043a2a9289834f815614f4a7","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) * 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  ('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 [('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']}),\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})]]\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":"28980993a3d57055c61f9b8ddbe67be38beb25232a4e52fb5091f2f360c41e9e","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:\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) * 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  ('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 [('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']}),\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})]]\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-split-beyond-end","generated_at":"2026-09-29T14:49:21.668624+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":"Only COUNT series are checked for a split past the end.","sha256":"d2f9d24b0d5fc7837ce0ee284b92f662ab9d916d1d863b8801819bdf3ebc7e47","title":"Splitting a series for a this-and-following edit: split beyond end · 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":43.054,"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-04"],"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":true},{"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":["2024-01-05",2,0,null]},"check":"split exactly at count","expected":{"head":["2024-01-01",4,null],"tail":null},"passed":false},{"actual":{"head":["2024-01-01",null,"2024-01-21"],"tail":null},"check":"split past until","expected":{"head":["2024-01-01",null,"2024-01-21"],"tail":null},"passed":true},{"actual":{"head":["2024-01-01",null,"2024-01-16"],"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":true}],"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-04\"], \"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\": true}, {\"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\": [\"2024-01-05\", 2, 0, null]}, \"expected\": {\"head\": [\"2024-01-01\", 4, null], \"tail\": null}, \"passed\": false}, {\"check\": \"split past until\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-21\"], \"tail\": null}, \"expected\": {\"head\": [\"2024-01-01\", null, \"2024-01-21\"], \"tail\": null}, \"passed\": true}, {\"check\": \"split at last until occurrence\", \"actual\": {\"head\": [\"2024-01-01\", null, \"2024-01-16\"], \"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\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.533,"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-04"],"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":true},{"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-21"],"tail":["2024-01-26",2,null,"2024-01-20"]},"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-16"],"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":true}],"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-04\"], \"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\": true}, {\"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-21\"], \"tail\": [\"2024-01-26\", 2, null, \"2024-01-20\"]}, \"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-16\"], \"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\": true}], \"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."}}