FA-77596 / Legal deadline computation / Open access
Quarterly and annual report due dates for a fiscal year: annual period · case 01
An accelerated filer's annual report is computed with the large-filer period.
ROOT CAUSE
Accelerated filers are grouped with large filers for the annual period.
VERIFIED REPAIR
At the annual period decision use `{'large': 60, 'accelerated': 75, 'non-accelerated': 90}[filer]`, leaving the other decision sites of the model unchanged.
Unsuccessful approach: The partial repair `{'large': 60, 'accelerated': 90, 'non-accelerated': 90}[filer]` groups accelerated filers with non-accelerated ones instead.
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': 60, '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-08-29'] | ['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'] | Failed |
| 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-01'] | ['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15'] | Failed |
| 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 / ba70fd2710a7df47296dc2d4009199a86b20d9be102fb506fb30b8ea5611e99c
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': 90, '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-30'] | ['2023-11-09', '2024-02-09', '2024-05-10', '2024-09-13'] | Failed |
| 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-30'] | ['2023-06-09', '2023-09-11', '2023-12-11', '2024-04-15'] | Failed |
| 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 / 9ae1f65a49f4c33804a7fea4952925f3f7915ff4d01be3365c7fbdf6441006b1
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.125929+00:00.
Case digest / a3e0a635d180b2b8eeb608efc7931f1dcef022c0f26b4ccb9fb04f6555f592d7