{"abstract":"BYMONTHDAY=-1 combined with BYDAY never matches.","category":"Calendar recurrence rules","checks":7,"contract":"FREQ=MONTHLY with BYDAY weekday codes (MO..SU) and BYMONTHDAY values (negative counts from month end). When both are present a day must satisfy both; an empty list imposes no restriction. Days are examined from dtstart forward. Return the first count ISO dates (search bounded to 50 years).","evaluation_group":"w2-calendar-recurrence-rules-monthly-byday-bymonthday-intersection","failed_approach":"The partial repair `(d.day in bymonthday or -d.day in bymonthday)` reads -1 as day 1 instead of the last day.","family":"w2-calendar-recurrence-rules-monthly-byday-bymonthday-intersection-negative-membership","id":"FA-77166","implementations":{"attempt":{"sha256":"1e8aefdf4e68afe337e9156cc2cebc6964327ed349f92b0949e307f1bf928ba3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, byday, bymonthday, count):\n    start = dt.date.fromisoformat(dtstart)\n    wanted = [['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'].index(w) for w in byday]\n    out = []\n    d = start\n    while len(out) < count and d.year < start.year + 50:\n        dim = calendar.monthrange(d.year, d.month)[1]\n        day_ok = not wanted or d.weekday() in wanted\n        mday_ok = not bymonthday or (d.day in bymonthday or -d.day in bymonthday)\n        if day_ok and mday_ok:\n            out.append(d.isoformat())\n        d += dt.timedelta(days=1)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01'])],\n [('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15'])],\n [('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13'])],\n [('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01'])],\n [('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31'])]]\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":"428a040e38e0116b9989a55846f8cded8447b682d6b46fe41299d98e3548ac3a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, byday, bymonthday, count):\n    start = dt.date.fromisoformat(dtstart)\n    wanted = [['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'].index(w) for w in byday]\n    out = []\n    d = start\n    while len(out) < count and d.year < start.year + 50:\n        dim = calendar.monthrange(d.year, d.month)[1]\n        day_ok = not wanted or d.weekday() in wanted\n        mday_ok = not bymonthday or d.day in bymonthday\n        if day_ok and mday_ok:\n            out.append(d.isoformat())\n        d += dt.timedelta(days=1)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01'])],\n [('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15'])],\n [('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13'])],\n [('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01'])],\n [('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31'])]]\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":"372a8eff9604691aec891b0d65b81541a0dc50431d0a001b99bf77f61f32138a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime as dt\nimport calendar\nN = 1\nobservations = []\ndef solve(dtstart, byday, bymonthday, count):\n    start = dt.date.fromisoformat(dtstart)\n    wanted = [['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'].index(w) for w in byday]\n    out = []\n    d = start\n    while len(out) < count and d.year < start.year + 50:\n        dim = calendar.monthrange(d.year, d.month)[1]\n        day_ok = not wanted or d.weekday() in wanted\n        mday_ok = not bymonthday or (d.day in bymonthday or d.day - dim - 1 in bymonthday)\n        if day_ok and mday_ok:\n            out.append(d.isoformat())\n        d += dt.timedelta(days=1)\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01'])],\n [('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15'])],\n [('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31']),\n  ('first monday via 1..7',\n   ['2024-02-01', ['MO'], [1, 2, 3, 4, 5, 6, 7], 3],\n   ['2024-02-05', '2024-03-04', '2024-04-01']),\n  ('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13'])],\n [('sunday first of month', ['2024-01-01', ['SU'], [1], 2], ['2024-09-01', '2024-12-01']),\n  ('tuesday 29th', ['2024-01-01', ['TU'], [29], 3], ['2024-10-29', '2025-04-29', '2025-07-29']),\n  ('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01'])],\n [('weekday 15th',\n   ['2024-03-01', ['MO', 'TU', 'WE', 'TH', 'FR'], [15], 4],\n   ['2024-03-15', '2024-04-15', '2024-05-15', '2024-07-15']),\n  ('thursday the 13th', ['2025-01-01', ['TH'], [13], 2], ['2025-02-13', '2025-03-13']),\n  ('regression: friday the 13th',\n   ['2024-01-01', ['FR'], [13], 3],\n   ['2024-09-13', '2024-12-13', '2025-06-13']),\n  ('last sunday via -1..-7',\n   ['2024-01-01', ['SU'], [-1, -2, -3, -4, -5, -6, -7], 3],\n   ['2024-01-28', '2024-02-25', '2024-03-31']),\n  ('only bymonthday',\n   ['2024-01-10', [], [1, 15], 4],\n   ['2024-01-15', '2024-02-01', '2024-02-15', '2024-03-01']),\n  ('only byday',\n   ['2024-01-01', ['SA', 'SU'], [], 4],\n   ['2024-01-06', '2024-01-07', '2024-01-13', '2024-01-14']),\n  ('last day monday', ['2024-01-01', ['MO'], [-1], 2], ['2024-09-30', '2025-03-31'])]]\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-monthly-byday-bymonthday-intersection-negative-membership","generated_at":"2026-09-29T14:49:23.111308+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 negative membership decision use `(d.day in bymonthday or d.day - dim - 1 in bymonthday)`, leaving the other decision sites of the model unchanged.","root_cause":"Negative month-day values are compared literally with the day number.","sha256":"77a84f9a958f3b3d94b0886859101470d22ca6988d19c33bf5d6986b9af70103","title":"Monthly BYDAY restricted by BYMONTHDAY (Friday the 13th): negative membership · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.495,"exit_code":1,"observations":[{"actual":["2024-09-13","2024-12-13","2025-06-13"],"check":"regression: friday the 13th","expected":["2024-09-13","2024-12-13","2025-06-13"],"passed":true},{"actual":["2024-01-07","2024-02-04","2024-03-03"],"check":"last sunday via -1..-7","expected":["2024-01-28","2024-02-25","2024-03-31"],"passed":false},{"actual":["2024-01-15","2024-02-01","2024-02-15","2024-03-01"],"check":"only bymonthday","expected":["2024-01-15","2024-02-01","2024-02-15","2024-03-01"],"passed":true},{"actual":["2024-01-06","2024-01-07","2024-01-13","2024-01-14"],"check":"only byday","expected":["2024-01-06","2024-01-07","2024-01-13","2024-01-14"],"passed":true},{"actual":["2024-01-01","2024-04-01"],"check":"last day monday","expected":["2024-09-30","2025-03-31"],"passed":false},{"actual":["2024-02-05","2024-03-04","2024-04-01"],"check":"first monday via 1..7","expected":["2024-02-05","2024-03-04","2024-04-01"],"passed":true},{"actual":["2024-09-01","2024-12-01"],"check":"sunday first of month","expected":["2024-09-01","2024-12-01"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: friday the 13th\", \"actual\": [\"2024-09-13\", \"2024-12-13\", \"2025-06-13\"], \"expected\": [\"2024-09-13\", \"2024-12-13\", \"2025-06-13\"], \"passed\": true}, {\"check\": \"last sunday via -1..-7\", \"actual\": [\"2024-01-07\", \"2024-02-04\", \"2024-03-03\"], \"expected\": [\"2024-01-28\", \"2024-02-25\", \"2024-03-31\"], \"passed\": false}, {\"check\": \"only bymonthday\", \"actual\": [\"2024-01-15\", \"2024-02-01\", \"2024-02-15\", \"2024-03-01\"], \"expected\": [\"2024-01-15\", \"2024-02-01\", \"2024-02-15\", \"2024-03-01\"], \"passed\": true}, {\"check\": \"only byday\", \"actual\": [\"2024-01-06\", \"2024-01-07\", \"2024-01-13\", \"2024-01-14\"], \"expected\": [\"2024-01-06\", \"2024-01-07\", \"2024-01-13\", \"2024-01-14\"], \"passed\": true}, {\"check\": \"last day monday\", \"actual\": [\"2024-01-01\", \"2024-04-01\"], \"expected\": [\"2024-09-30\", \"2025-03-31\"], \"passed\": false}, {\"check\": \"first monday via 1..7\", \"actual\": [\"2024-02-05\", \"2024-03-04\", \"2024-04-01\"], \"expected\": [\"2024-02-05\", \"2024-03-04\", \"2024-04-01\"], \"passed\": true}, {\"check\": \"sunday first of month\", \"actual\": [\"2024-09-01\", \"2024-12-01\"], \"expected\": [\"2024-09-01\", \"2024-12-01\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":69.171,"exit_code":1,"observations":[{"actual":["2024-09-13","2024-12-13","2025-06-13"],"check":"regression: friday the 13th","expected":["2024-09-13","2024-12-13","2025-06-13"],"passed":true},{"actual":[],"check":"last sunday via -1..-7","expected":["2024-01-28","2024-02-25","2024-03-31"],"passed":false},{"actual":["2024-01-15","2024-02-01","2024-02-15","2024-03-01"],"check":"only bymonthday","expected":["2024-01-15","2024-02-01","2024-02-15","2024-03-01"],"passed":true},{"actual":["2024-01-06","2024-01-07","2024-01-13","2024-01-14"],"check":"only byday","expected":["2024-01-06","2024-01-07","2024-01-13","2024-01-14"],"passed":true},{"actual":[],"check":"last day monday","expected":["2024-09-30","2025-03-31"],"passed":false},{"actual":["2024-02-05","2024-03-04","2024-04-01"],"check":"first monday via 1..7","expected":["2024-02-05","2024-03-04","2024-04-01"],"passed":true},{"actual":["2024-09-01","2024-12-01"],"check":"sunday first of month","expected":["2024-09-01","2024-12-01"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: friday the 13th\", \"actual\": [\"2024-09-13\", \"2024-12-13\", \"2025-06-13\"], \"expected\": [\"2024-09-13\", \"2024-12-13\", \"2025-06-13\"], \"passed\": true}, {\"check\": \"last sunday via -1..-7\", \"actual\": [], \"expected\": [\"2024-01-28\", \"2024-02-25\", \"2024-03-31\"], \"passed\": false}, {\"check\": \"only bymonthday\", \"actual\": [\"2024-01-15\", \"2024-02-01\", \"2024-02-15\", \"2024-03-01\"], \"expected\": [\"2024-01-15\", \"2024-02-01\", \"2024-02-15\", \"2024-03-01\"], \"passed\": true}, {\"check\": \"only byday\", \"actual\": [\"2024-01-06\", \"2024-01-07\", \"2024-01-13\", \"2024-01-14\"], \"expected\": [\"2024-01-06\", \"2024-01-07\", \"2024-01-13\", \"2024-01-14\"], \"passed\": true}, {\"check\": \"last day monday\", \"actual\": [], \"expected\": [\"2024-09-30\", \"2025-03-31\"], \"passed\": false}, {\"check\": \"first monday via 1..7\", \"actual\": [\"2024-02-05\", \"2024-03-04\", \"2024-04-01\"], \"expected\": [\"2024-02-05\", \"2024-03-04\", \"2024-04-01\"], \"passed\": true}, {\"check\": \"sunday first of month\", \"actual\": [\"2024-09-01\", \"2024-12-01\"], \"expected\": [\"2024-09-01\", \"2024-12-01\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.359,"exit_code":0,"observations":[{"actual":["2024-09-13","2024-12-13","2025-06-13"],"check":"regression: friday the 13th","expected":["2024-09-13","2024-12-13","2025-06-13"],"passed":true},{"actual":["2024-01-28","2024-02-25","2024-03-31"],"check":"last sunday via -1..-7","expected":["2024-01-28","2024-02-25","2024-03-31"],"passed":true},{"actual":["2024-01-15","2024-02-01","2024-02-15","2024-03-01"],"check":"only bymonthday","expected":["2024-01-15","2024-02-01","2024-02-15","2024-03-01"],"passed":true},{"actual":["2024-01-06","2024-01-07","2024-01-13","2024-01-14"],"check":"only byday","expected":["2024-01-06","2024-01-07","2024-01-13","2024-01-14"],"passed":true},{"actual":["2024-09-30","2025-03-31"],"check":"last day monday","expected":["2024-09-30","2025-03-31"],"passed":true},{"actual":["2024-02-05","2024-03-04","2024-04-01"],"check":"first monday via 1..7","expected":["2024-02-05","2024-03-04","2024-04-01"],"passed":true},{"actual":["2024-09-01","2024-12-01"],"check":"sunday first of month","expected":["2024-09-01","2024-12-01"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: friday the 13th\", \"actual\": [\"2024-09-13\", \"2024-12-13\", \"2025-06-13\"], \"expected\": [\"2024-09-13\", \"2024-12-13\", \"2025-06-13\"], \"passed\": true}, {\"check\": \"last sunday via -1..-7\", \"actual\": [\"2024-01-28\", \"2024-02-25\", \"2024-03-31\"], \"expected\": [\"2024-01-28\", \"2024-02-25\", \"2024-03-31\"], \"passed\": true}, {\"check\": \"only bymonthday\", \"actual\": [\"2024-01-15\", \"2024-02-01\", \"2024-02-15\", \"2024-03-01\"], \"expected\": [\"2024-01-15\", \"2024-02-01\", \"2024-02-15\", \"2024-03-01\"], \"passed\": true}, {\"check\": \"only byday\", \"actual\": [\"2024-01-06\", \"2024-01-07\", \"2024-01-13\", \"2024-01-14\"], \"expected\": [\"2024-01-06\", \"2024-01-07\", \"2024-01-13\", \"2024-01-14\"], \"passed\": true}, {\"check\": \"last day monday\", \"actual\": [\"2024-09-30\", \"2025-03-31\"], \"expected\": [\"2024-09-30\", \"2025-03-31\"], \"passed\": true}, {\"check\": \"first monday via 1..7\", \"actual\": [\"2024-02-05\", \"2024-03-04\", \"2024-04-01\"], \"expected\": [\"2024-02-05\", \"2024-03-04\", \"2024-04-01\"], \"passed\": true}, {\"check\": \"sunday first of month\", \"actual\": [\"2024-09-01\", \"2024-12-01\"], \"expected\": [\"2024-09-01\", \"2024-12-01\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}