{"abstract":"A leap-day series reports February 28 in common years.","category":"Calendar recurrence rules","checks":7,"contract":"FREQ=YEARLY on a fixed month and day. Years are dtstart.year + k*interval. A year in which the date does not exist (for example February 29 in a common year) is skipped, never clamped. Gregorian leap years: divisible by 4, except centuries not divisible by 400. Instances before dtstart are dropped and the series ends at until (inclusive). Return ISO dates.","evaluation_group":"w2-calendar-recurrence-rules-yearly-month-day","failed_approach":"The partial repair `if dd > dim:;     break` ends the whole series at the first common year.","family":"w2-calendar-recurrence-rules-yearly-month-day-invalid-year","id":"FA-76951","implementations":{"attempt":{"sha256":"91f1f95aaf6d47d43f948fe251582e6702255c38097d8eff44287c9c74323393","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, month, day, interval, until):\n    start = tuple(int(x) for x in dtstart.split('-'))\n    last = tuple(int(x) for x in until.split('-'))\n    def is_leap(y):\n        return y % 4 == 0 and (y % 100 != 0 or y % 400 == 0)\n    out = []\n    for k in range(500):\n        y = start[0] + k * interval\n        if y > last[0]:\n            break\n        dim = [31, 29 if is_leap(y) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1]\n        dd = day\n        if dd > dim:\n            break\n        d = (y, month, dd)\n        if d < start:\n            continue\n        if d > last:\n            break\n        out.append('%04d-%02d-%02d' % d)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29']),\n  ('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04']),\n  ('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10'])],\n [('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04']),\n  ('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], [])],\n [('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29'])],\n [('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29']),\n  ('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29'])],\n [('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29']),\n  ('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29']),\n  ('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04'])]]\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":"bbb96d354620e951862c776cd3050ebfd24c7d17ca26aa2d378ed0462df082a3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, month, day, interval, until):\n    start = tuple(int(x) for x in dtstart.split('-'))\n    last = tuple(int(x) for x in until.split('-'))\n    def is_leap(y):\n        return y % 4 == 0 and (y % 100 != 0 or y % 400 == 0)\n    out = []\n    for k in range(500):\n        y = start[0] + k * interval\n        if y > last[0]:\n            break\n        dim = [31, 29 if is_leap(y) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1]\n        dd = day\n        dd = min(dd, dim)\n        d = (y, month, dd)\n        if d < start:\n            continue\n        if d > last:\n            break\n        out.append('%04d-%02d-%02d' % d)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29']),\n  ('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04']),\n  ('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10'])],\n [('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04']),\n  ('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], [])],\n [('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29'])],\n [('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29']),\n  ('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29'])],\n [('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29']),\n  ('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29']),\n  ('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04'])]]\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":"54b5d5da2c17d96cb46749d666b08412070e9b2a4807a6f01964590825f9aae4","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, month, day, interval, until):\n    start = tuple(int(x) for x in dtstart.split('-'))\n    last = tuple(int(x) for x in until.split('-'))\n    def is_leap(y):\n        return y % 4 == 0 and (y % 100 != 0 or y % 400 == 0)\n    out = []\n    for k in range(500):\n        y = start[0] + k * interval\n        if y > last[0]:\n            break\n        dim = [31, 29 if is_leap(y) else 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1]\n        dd = day\n        if dd > dim:\n            continue\n        d = (y, month, dd)\n        if d < start:\n            continue\n        if d > last:\n            break\n        out.append('%04d-%02d-%02d' % d)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29']),\n  ('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04']),\n  ('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10'])],\n [('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04']),\n  ('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], [])],\n [('until year partial', ['2020-01-10', 12, 25, 1, '2022-06-30'], ['2020-12-25', '2021-12-25']),\n  ('leap day from common year',\n   ['2023-01-01', 2, 29, 1, '2033-01-01'],\n   ['2024-02-29', '2028-02-29', '2032-02-29']),\n  ('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29'])],\n [('same month earlier day',\n   ['2024-05-20', 5, 10, 1, '2027-12-31'],\n   ['2025-05-10', '2026-05-10', '2027-05-10']),\n  ('dtstart on anniversary',\n   ['2021-11-11', 11, 11, 3, '2031-11-11'],\n   ['2021-11-11', '2024-11-11', '2027-11-11', '2030-11-11']),\n  ('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29']),\n  ('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29'])],\n [('interval 4 leap-day from 2023', ['2023-03-01', 2, 29, 4, '2040-12-31'], []),\n  ('year-end date',\n   ['2019-12-31', 12, 31, 2, '2026-01-01'],\n   ['2019-12-31', '2021-12-31', '2023-12-31', '2025-12-31']),\n  ('century non-leap interval 1', ['2098-01-01', 2, 29, 1, '2105-01-01'], ['2104-02-29']),\n  ('regression: leap day across 2100',\n   ['2092-02-29', 2, 29, 4, '2108-12-31'],\n   ['2092-02-29', '2096-02-29', '2104-02-29', '2108-02-29']),\n  ('leap day includes 2000',\n   ['1996-02-29', 2, 29, 1, '2004-03-01'],\n   ['1996-02-29', '2000-02-29', '2004-02-29']),\n  ('anniversary before dtstart, interval 2',\n   ['2024-06-01', 3, 15, 2, '2031-01-01'],\n   ['2026-03-15', '2028-03-15', '2030-03-15']),\n  ('until exactly on instance',\n   ['2020-07-04', 7, 4, 1, '2023-07-04'],\n   ['2020-07-04', '2021-07-04', '2022-07-04', '2023-07-04'])]]\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-yearly-month-day-invalid-year","generated_at":"2026-09-29T14:49:21.022154+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.","repair":"At the invalid year decision use `if dd > dim:;     continue`, leaving the other decision sites of the model unchanged.","root_cause":"A missing date is clamped to the month end instead of skipping the year.","sha256":"665797d3f7c23e1638f59b98a0eb1dd752144c23f3fd08b166c1d877e7c99c8b","title":"Yearly BYMONTH/BYMONTHDAY with leap-day skipping: invalid year · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.655,"exit_code":1,"observations":[{"actual":["2092-02-29","2096-02-29"],"check":"regression: leap day across 2100","expected":["2092-02-29","2096-02-29","2104-02-29","2108-02-29"],"passed":false},{"actual":["1996-02-29"],"check":"leap day includes 2000","expected":["1996-02-29","2000-02-29","2004-02-29"],"passed":false},{"actual":["2026-03-15","2028-03-15","2030-03-15"],"check":"anniversary before dtstart, interval 2","expected":["2026-03-15","2028-03-15","2030-03-15"],"passed":true},{"actual":["2020-07-04","2021-07-04","2022-07-04","2023-07-04"],"check":"until exactly on instance","expected":["2020-07-04","2021-07-04","2022-07-04","2023-07-04"],"passed":true},{"actual":["2020-12-25","2021-12-25"],"check":"until year partial","expected":["2020-12-25","2021-12-25"],"passed":true},{"actual":[],"check":"leap day from common year","expected":["2024-02-29","2028-02-29","2032-02-29"],"passed":false},{"actual":["2025-05-10","2026-05-10","2027-05-10"],"check":"same month earlier day","expected":["2025-05-10","2026-05-10","2027-05-10"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: leap day across 2100\", \"actual\": [\"2092-02-29\", \"2096-02-29\"], \"expected\": [\"2092-02-29\", \"2096-02-29\", \"2104-02-29\", \"2108-02-29\"], \"passed\": false}, {\"check\": \"leap day includes 2000\", \"actual\": [\"1996-02-29\"], \"expected\": [\"1996-02-29\", \"2000-02-29\", \"2004-02-29\"], \"passed\": false}, {\"check\": \"anniversary before dtstart, interval 2\", \"actual\": [\"2026-03-15\", \"2028-03-15\", \"2030-03-15\"], \"expected\": [\"2026-03-15\", \"2028-03-15\", \"2030-03-15\"], \"passed\": true}, {\"check\": \"until exactly on instance\", \"actual\": [\"2020-07-04\", \"2021-07-04\", \"2022-07-04\", \"2023-07-04\"], \"expected\": [\"2020-07-04\", \"2021-07-04\", \"2022-07-04\", \"2023-07-04\"], \"passed\": true}, {\"check\": \"until year partial\", \"actual\": [\"2020-12-25\", \"2021-12-25\"], \"expected\": [\"2020-12-25\", \"2021-12-25\"], \"passed\": true}, {\"check\": \"leap day from common year\", \"actual\": [], \"expected\": [\"2024-02-29\", \"2028-02-29\", \"2032-02-29\"], \"passed\": false}, {\"check\": \"same month earlier day\", \"actual\": [\"2025-05-10\", \"2026-05-10\", \"2027-05-10\"], \"expected\": [\"2025-05-10\", \"2026-05-10\", \"2027-05-10\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.592,"exit_code":1,"observations":[{"actual":["2092-02-29","2096-02-29","2100-02-28","2104-02-29","2108-02-29"],"check":"regression: leap day across 2100","expected":["2092-02-29","2096-02-29","2104-02-29","2108-02-29"],"passed":false},{"actual":["1996-02-29","1997-02-28","1998-02-28","1999-02-28","2000-02-29","2001-02-28","2002-02-28","2003-02-28","2004-02-29"],"check":"leap day includes 2000","expected":["1996-02-29","2000-02-29","2004-02-29"],"passed":false},{"actual":["2026-03-15","2028-03-15","2030-03-15"],"check":"anniversary before dtstart, interval 2","expected":["2026-03-15","2028-03-15","2030-03-15"],"passed":true},{"actual":["2020-07-04","2021-07-04","2022-07-04","2023-07-04"],"check":"until exactly on instance","expected":["2020-07-04","2021-07-04","2022-07-04","2023-07-04"],"passed":true},{"actual":["2020-12-25","2021-12-25"],"check":"until year partial","expected":["2020-12-25","2021-12-25"],"passed":true},{"actual":["2023-02-28","2024-02-29","2025-02-28","2026-02-28","2027-02-28","2028-02-29","2029-02-28","2030-02-28","2031-02-28","2032-02-29"],"check":"leap day from common year","expected":["2024-02-29","2028-02-29","2032-02-29"],"passed":false},{"actual":["2025-05-10","2026-05-10","2027-05-10"],"check":"same month earlier day","expected":["2025-05-10","2026-05-10","2027-05-10"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: leap day across 2100\", \"actual\": [\"2092-02-29\", \"2096-02-29\", \"2100-02-28\", \"2104-02-29\", \"2108-02-29\"], \"expected\": [\"2092-02-29\", \"2096-02-29\", \"2104-02-29\", \"2108-02-29\"], \"passed\": false}, {\"check\": \"leap day includes 2000\", \"actual\": [\"1996-02-29\", \"1997-02-28\", \"1998-02-28\", \"1999-02-28\", \"2000-02-29\", \"2001-02-28\", \"2002-02-28\", \"2003-02-28\", \"2004-02-29\"], \"expected\": [\"1996-02-29\", \"2000-02-29\", \"2004-02-29\"], \"passed\": false}, {\"check\": \"anniversary before dtstart, interval 2\", \"actual\": [\"2026-03-15\", \"2028-03-15\", \"2030-03-15\"], \"expected\": [\"2026-03-15\", \"2028-03-15\", \"2030-03-15\"], \"passed\": true}, {\"check\": \"until exactly on instance\", \"actual\": [\"2020-07-04\", \"2021-07-04\", \"2022-07-04\", \"2023-07-04\"], \"expected\": [\"2020-07-04\", \"2021-07-04\", \"2022-07-04\", \"2023-07-04\"], \"passed\": true}, {\"check\": \"until year partial\", \"actual\": [\"2020-12-25\", \"2021-12-25\"], \"expected\": [\"2020-12-25\", \"2021-12-25\"], \"passed\": true}, {\"check\": \"leap day from common year\", \"actual\": [\"2023-02-28\", \"2024-02-29\", \"2025-02-28\", \"2026-02-28\", \"2027-02-28\", \"2028-02-29\", \"2029-02-28\", \"2030-02-28\", \"2031-02-28\", \"2032-02-29\"], \"expected\": [\"2024-02-29\", \"2028-02-29\", \"2032-02-29\"], \"passed\": false}, {\"check\": \"same month earlier day\", \"actual\": [\"2025-05-10\", \"2026-05-10\", \"2027-05-10\"], \"expected\": [\"2025-05-10\", \"2026-05-10\", \"2027-05-10\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.381,"exit_code":0,"observations":[{"actual":["2092-02-29","2096-02-29","2104-02-29","2108-02-29"],"check":"regression: leap day across 2100","expected":["2092-02-29","2096-02-29","2104-02-29","2108-02-29"],"passed":true},{"actual":["1996-02-29","2000-02-29","2004-02-29"],"check":"leap day includes 2000","expected":["1996-02-29","2000-02-29","2004-02-29"],"passed":true},{"actual":["2026-03-15","2028-03-15","2030-03-15"],"check":"anniversary before dtstart, interval 2","expected":["2026-03-15","2028-03-15","2030-03-15"],"passed":true},{"actual":["2020-07-04","2021-07-04","2022-07-04","2023-07-04"],"check":"until exactly on instance","expected":["2020-07-04","2021-07-04","2022-07-04","2023-07-04"],"passed":true},{"actual":["2020-12-25","2021-12-25"],"check":"until year partial","expected":["2020-12-25","2021-12-25"],"passed":true},{"actual":["2024-02-29","2028-02-29","2032-02-29"],"check":"leap day from common year","expected":["2024-02-29","2028-02-29","2032-02-29"],"passed":true},{"actual":["2025-05-10","2026-05-10","2027-05-10"],"check":"same month earlier day","expected":["2025-05-10","2026-05-10","2027-05-10"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: leap day across 2100\", \"actual\": [\"2092-02-29\", \"2096-02-29\", \"2104-02-29\", \"2108-02-29\"], \"expected\": [\"2092-02-29\", \"2096-02-29\", \"2104-02-29\", \"2108-02-29\"], \"passed\": true}, {\"check\": \"leap day includes 2000\", \"actual\": [\"1996-02-29\", \"2000-02-29\", \"2004-02-29\"], \"expected\": [\"1996-02-29\", \"2000-02-29\", \"2004-02-29\"], \"passed\": true}, {\"check\": \"anniversary before dtstart, interval 2\", \"actual\": [\"2026-03-15\", \"2028-03-15\", \"2030-03-15\"], \"expected\": [\"2026-03-15\", \"2028-03-15\", \"2030-03-15\"], \"passed\": true}, {\"check\": \"until exactly on instance\", \"actual\": [\"2020-07-04\", \"2021-07-04\", \"2022-07-04\", \"2023-07-04\"], \"expected\": [\"2020-07-04\", \"2021-07-04\", \"2022-07-04\", \"2023-07-04\"], \"passed\": true}, {\"check\": \"until year partial\", \"actual\": [\"2020-12-25\", \"2021-12-25\"], \"expected\": [\"2020-12-25\", \"2021-12-25\"], \"passed\": true}, {\"check\": \"leap day from common year\", \"actual\": [\"2024-02-29\", \"2028-02-29\", \"2032-02-29\"], \"expected\": [\"2024-02-29\", \"2028-02-29\", \"2032-02-29\"], \"passed\": true}, {\"check\": \"same month earlier day\", \"actual\": [\"2025-05-10\", \"2026-05-10\", \"2027-05-10\"], \"expected\": [\"2025-05-10\", \"2026-05-10\", \"2027-05-10\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}