FA-77601 / Legal deadline computation / Open access
Quarterly and annual report due dates for a fiscal year: quarter month · case 01
A June fiscal year gets quarterly deadlines based on calendar quarters.
ROOT CAUSE
Quarter ends are taken from the calendar year rather than the fiscal year.
VERIFIED REPAIR
At the quarter month decision use `fy_end_month - 1 - 3 * (4 - q)`, leaving the other decision sites of the model unchanged.
Unsuccessful approach: The partial repair `fy_end_month - 1 + 3 * q` counts quarters forward from year end, landing in the next fiscal year.
Case contract
Stipulated: a fiscal year labelled year ends on the last day of fy_end_month in that year. Quarterly reports cover the first three fiscal quarters, which end on the last day of the months 9, 6 and 3 months before the fiscal year end; they are due 40 days after quarter end (45 for non-accelerated filers). The annual report is due 60/75/90 days after year end for large/accelerated/non-accelerated filers. Each due date on a weekend or listed holiday moves to the next open day. Return [Q1, Q2, Q3, annual].
Why this case matters
Docketing systems compute filing and response deadlines from trigger events; a wrong date can forfeit a right.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import datetime as dt
import calendar
N = 1
observations = []
def solve(year, fy_end_month, filer, holidays):
hol = {dt.date.fromisoformat(x) for x in holidays}
def roll(d):
while d.weekday() >= 5 or d in hol:
d += dt.timedelta(days=1)
return d
qdays = 45 if filer == 'non-accelerated' else 40
adays = {'large': 60, 'accelerated': 75, 'non-accelerated': 90}[filer]
out = []
for q in (1, 2, 3):
mi = 3 * q - 1 + year * 12
y, m = mi // 12, mi % 12 + 1
qend = dt.date(y, m, calendar.monthrange(y, m)[1])
out.append(roll(qend + dt.timedelta(days=qdays)).isoformat())
fy_end = dt.date(year, fy_end_month, calendar.monthrange(year, fy_end_month)[1])
out.append(roll(fy_end + dt.timedelta(days=adays)).isoformat())
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'])],
[('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'])],
[('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'])],
[('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'])],
[('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: calendar year non-accelerated | ['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'] | ['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'] | Passed |
| calendar year large | ['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03'] | ['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03'] | Passed |
| accelerated june fiscal year | ['2024-05-10', '2024-08-09', '2024-11-12', '2024-09-13'] | ['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'] | Failed |
| large september fiscal year | ['2024-05-10', '2024-08-09', '2024-11-12', '2024-11-29'] | ['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29'] | Failed |
| march fiscal year leap feb quarter | ['2024-05-15', '2024-08-14', '2024-11-14', '2024-08-29'] | ['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'] | Failed |
| january fiscal year | ['2024-05-10', '2024-08-09', '2024-11-12', '2024-04-15'] | ['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15'] | Failed |
| november fiscal year | ['2024-05-10', '2024-08-09', '2024-11-12', '2025-01-29'] | ['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'] | Failed |
SHA-256 / 6c3ba3258ee5ef6a9aab4823f77d8f9cea17c0177646b552cab986cd726063df
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
import datetime as dt
import calendar
N = 1
observations = []
def solve(year, fy_end_month, filer, holidays):
hol = {dt.date.fromisoformat(x) for x in holidays}
def roll(d):
while d.weekday() >= 5 or d in hol:
d += dt.timedelta(days=1)
return d
qdays = 45 if filer == 'non-accelerated' else 40
adays = {'large': 60, 'accelerated': 75, 'non-accelerated': 90}[filer]
out = []
for q in (1, 2, 3):
mi = fy_end_month - 1 + 3 * q + year * 12
y, m = mi // 12, mi % 12 + 1
qend = dt.date(y, m, calendar.monthrange(y, m)[1])
out.append(roll(qend + dt.timedelta(days=qdays)).isoformat())
fy_end = dt.date(year, fy_end_month, calendar.monthrange(year, fy_end_month)[1])
out.append(roll(fy_end + dt.timedelta(days=adays)).isoformat())
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'])],
[('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'])],
[('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'])],
[('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'])],
[('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: calendar year non-accelerated | ['2025-05-15', '2025-08-14', '2025-11-14', '2025-03-31'] | ['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'] | Failed |
| calendar year large | ['2025-05-12', '2025-08-11', '2025-11-10', '2025-03-03'] | ['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03'] | Failed |
| accelerated june fiscal year | ['2024-11-12', '2025-02-10', '2025-05-12', '2024-09-13'] | ['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'] | Failed |
| large september fiscal year | ['2025-02-10', '2025-05-12', '2025-08-11', '2024-11-29'] | ['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29'] | Failed |
| march fiscal year leap feb quarter | ['2024-10-15', '2025-01-14', '2025-04-14', '2024-08-29'] | ['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'] | Failed |
| january fiscal year | ['2024-06-10', '2024-09-09', '2024-12-10', '2024-04-15'] | ['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15'] | Failed |
| november fiscal year | ['2025-04-09', '2025-07-10', '2025-10-10', '2025-01-29'] | ['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'] | Failed |
SHA-256 / 3509ed9e12c5e483710d5fffb4971563c585cf37fe3aa2a0d9ea1190bba6019d
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
import datetime as dt
import calendar
N = 1
observations = []
def solve(year, fy_end_month, filer, holidays):
hol = {dt.date.fromisoformat(x) for x in holidays}
def roll(d):
while d.weekday() >= 5 or d in hol:
d += dt.timedelta(days=1)
return d
qdays = 45 if filer == 'non-accelerated' else 40
adays = {'large': 60, 'accelerated': 75, 'non-accelerated': 90}[filer]
out = []
for q in (1, 2, 3):
mi = fy_end_month - 1 - 3 * (4 - q) + year * 12
y, m = mi // 12, mi % 12 + 1
qend = dt.date(y, m, calendar.monthrange(y, m)[1])
out.append(roll(qend + dt.timedelta(days=qdays)).isoformat())
fy_end = dt.date(year, fy_end_month, calendar.monthrange(year, fy_end_month)[1])
out.append(roll(fy_end + dt.timedelta(days=adays)).isoformat())
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'])],
[('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'])],
[('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'])],
[('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29']),
('october fiscal year non-accelerated',
[2023,
10,
'non-accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25']],
['2023-03-17', '2023-06-14', '2023-09-14', '2024-01-29']),
('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'])],
[('regression: calendar year non-accelerated',
[2024,
12,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31']),
('calendar year large',
[2024,
12,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03']),
('accelerated june fiscal year',
[2024,
6,
'accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13']),
('large september fiscal year',
[2024,
9,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29']),
('march fiscal year leap feb quarter',
[2024,
5,
'non-accelerated',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29']),
('january fiscal year',
[2024,
1,
'accelerated',
['2023-01-02',
'2023-01-16',
'2023-02-20',
'2023-05-29',
'2023-06-19',
'2023-07-04',
'2023-09-04',
'2023-10-09',
'2023-11-10',
'2023-11-23',
'2023-12-25',
'2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15']),
('november fiscal year',
[2024,
11,
'large',
['2024-01-01',
'2024-01-15',
'2024-02-19',
'2024-05-27',
'2024-06-19',
'2024-07-04',
'2024-09-02',
'2024-10-14',
'2024-11-11',
'2024-11-28',
'2024-12-25']],
['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'])]]
for label, args, expected in fixtures[N-1]:
check(label, solve(*args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: calendar year non-accelerated | ['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'] | ['2024-05-15', '2024-08-14', '2024-11-14', '2025-03-31'] | Passed |
| calendar year large | ['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03'] | ['2024-05-10', '2024-08-09', '2024-11-12', '2025-03-03'] | Passed |
| accelerated june fiscal year | ['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'] | ['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'] | Passed |
| large september fiscal year | ['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29'] | ['2024-02-09', '2024-05-10', '2024-08-09', '2024-11-29'] | Passed |
| march fiscal year leap feb quarter | ['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'] | ['2023-10-16', '2024-01-16', '2024-04-15', '2024-08-29'] | Passed |
| january fiscal year | ['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15'] | ['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15'] | Passed |
| november fiscal year | ['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'] | ['2024-04-09', '2024-07-10', '2024-10-10', '2025-01-29'] | Passed |
SHA-256 / fbb32385c4075cbec09a976eeaf3e26955a8cea8982b1b7c4b4e120f8f415716
Verification & scope
Stipulated toy deadline rules evaluated offline on explicit fixtures. The contract is inspired by common court-rule structures but is not legal advice and makes no claim to reproduce any jurisdiction's rules. 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.
Observations recorded using Python 3.12.14 at 2026-09-29T14:49:27.172550+00:00.
Case digest / e043003a9818d30e6b9ab4786d38ddbe7d1c5e0aac784669f9b3b5400bb63c4f