FAILURE MAP
← Case archive

FA-77741 / Legal deadline computation / Open access

Deadlines extended by a bankruptcy filing and automatic stay: expired test · case 01

A deadline falling on the petition date is treated as already expired.

Verified by executionVariant 1 · 7 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

The expiry test is inclusive of the petition date.

VERIFIED REPAIR

At the expired test decision use `d < p`, leaving the other decision sites of the model unchanged.

Unsuccessful approach: The partial repair `d < p - dt.timedelta(days=1)` treats a deadline the day before the petition as still alive.

Case contract

Stipulated: for each deadline [kind, date] and petition date p: a deadline before p had already expired and is returned as [date, "expired"]. An "act" deadline becomes the later of its date and p + 60 days. A "collection" deadline becomes the later of its date and stay_end + 30 days; if stay_end is None it is "stayed". Return [date or None, status] per deadline, status "extended" when the date moved and "unchanged" otherwise.

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(petition, stay_end, deadlines):
    p = dt.date.fromisoformat(petition)
    out = []
    stay = dt.date.fromisoformat(stay_end) if stay_end else None
    for kind, due in deadlines:
        d = dt.date.fromisoformat(due)
        if d <= p:
            out.append([due, 'expired'])
            continue
        if kind == 'act':
            new = max(d, p + dt.timedelta(days=60))
        elif stay is None:
            out.append([None, 'stayed'])
            continue
        else:
            new = max(d, stay + dt.timedelta(days=30))
        out.append([new.isoformat(), 'extended' if new != d else 'unchanged'])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']])],
 [('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']])],
 [('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']])],
 [('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']])],
 [('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']])]]
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 fixtureActualExpectedOutcome
regression: late act deadline[['2024-07-15', 'unchanged']][['2024-07-15', 'unchanged']]Passed
act soon after petition[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
deadline on petition date[['2024-03-01', 'expired']][['2024-04-30', 'extended']]Failed
expired day before[['2024-02-29', 'expired']][['2024-02-29', 'expired']]Passed
collection after stay[['2024-07-01', 'extended']][['2024-07-01', 'extended']]Passed
collection stay pending[[None, 'stayed'], ['2024-04-30', 'extended']][[None, 'stayed'], ['2024-04-30', 'extended']]Passed
collection late anyway[['2024-06-30', 'unchanged']][['2024-06-30', 'unchanged']]Passed

SHA-256 / 4966801768793ae281c7056c52bb2de8332a15d2c6c7066efe6de2e42dc35ff6

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(petition, stay_end, deadlines):
    p = dt.date.fromisoformat(petition)
    out = []
    stay = dt.date.fromisoformat(stay_end) if stay_end else None
    for kind, due in deadlines:
        d = dt.date.fromisoformat(due)
        if d < p - dt.timedelta(days=1):
            out.append([due, 'expired'])
            continue
        if kind == 'act':
            new = max(d, p + dt.timedelta(days=60))
        elif stay is None:
            out.append([None, 'stayed'])
            continue
        else:
            new = max(d, stay + dt.timedelta(days=30))
        out.append([new.isoformat(), 'extended' if new != d else 'unchanged'])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']])],
 [('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']])],
 [('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']])],
 [('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']])],
 [('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']])]]
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 fixtureActualExpectedOutcome
regression: late act deadline[['2024-07-15', 'unchanged']][['2024-07-15', 'unchanged']]Passed
act soon after petition[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
deadline on petition date[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
expired day before[['2024-04-30', 'extended']][['2024-02-29', 'expired']]Failed
collection after stay[['2024-07-01', 'extended']][['2024-07-01', 'extended']]Passed
collection stay pending[[None, 'stayed'], ['2024-04-30', 'extended']][[None, 'stayed'], ['2024-04-30', 'extended']]Passed
collection late anyway[['2024-06-30', 'unchanged']][['2024-06-30', 'unchanged']]Passed

SHA-256 / 0523b963c8167649df52a70ab9b33d987a40689911bf7dd762f39baaa6901878

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(petition, stay_end, deadlines):
    p = dt.date.fromisoformat(petition)
    out = []
    stay = dt.date.fromisoformat(stay_end) if stay_end else None
    for kind, due in deadlines:
        d = dt.date.fromisoformat(due)
        if d < p:
            out.append([due, 'expired'])
            continue
        if kind == 'act':
            new = max(d, p + dt.timedelta(days=60))
        elif stay is None:
            out.append([None, 'stayed'])
            continue
        else:
            new = max(d, stay + dt.timedelta(days=30))
        out.append([new.isoformat(), 'extended' if new != d else 'unchanged'])
    return out
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']])],
 [('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']])],
 [('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']]),
  ('collection stay pending',
   ['2024-03-01', None, [['collection', '2024-03-15'], ['act', '2024-03-20']]],
   [[None, 'stayed'], ['2024-04-30', 'extended']]),
  ('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']])],
 [('collection late anyway',
   ['2024-03-01', '2024-04-01', [['collection', '2024-06-30']]],
   [['2024-06-30', 'unchanged']]),
  ('mixed list',
   ['2024-05-10', '2024-05-20', [['act', '2024-05-01'], ['collection', '2024-05-12'], ['act', '2024-08-01']]],
   [['2024-05-01', 'expired'], ['2024-06-19', 'extended'], ['2024-08-01', 'unchanged']]),
  ('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']])],
 [('collection due after petition before stay end',
   ['2024-01-10', '2024-02-05', [['collection', '2024-02-01']]],
   [['2024-03-06', 'extended']]),
  ('stay pending act only', ['2024-02-01', None, [['act', '2024-02-02']]], [['2024-04-01', 'extended']]),
  ('regression: late act deadline',
   ['2024-03-01', '2024-06-01', [['act', '2024-07-15']]],
   [['2024-07-15', 'unchanged']]),
  ('act soon after petition',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-10']]],
   [['2024-04-30', 'extended']]),
  ('deadline on petition date',
   ['2024-03-01', '2024-06-01', [['act', '2024-03-01']]],
   [['2024-04-30', 'extended']]),
  ('expired day before', ['2024-03-01', '2024-06-01', [['act', '2024-02-29']]], [['2024-02-29', 'expired']]),
  ('collection after stay',
   ['2024-03-01', '2024-06-01', [['collection', '2024-03-15']]],
   [['2024-07-01', 'extended']])]]
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 fixtureActualExpectedOutcome
regression: late act deadline[['2024-07-15', 'unchanged']][['2024-07-15', 'unchanged']]Passed
act soon after petition[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
deadline on petition date[['2024-04-30', 'extended']][['2024-04-30', 'extended']]Passed
expired day before[['2024-02-29', 'expired']][['2024-02-29', 'expired']]Passed
collection after stay[['2024-07-01', 'extended']][['2024-07-01', 'extended']]Passed
collection stay pending[[None, 'stayed'], ['2024-04-30', 'extended']][[None, 'stayed'], ['2024-04-30', 'extended']]Passed
collection late anyway[['2024-06-30', 'unchanged']][['2024-06-30', 'unchanged']]Passed

SHA-256 / 4d935c54d0a97910e75155214fa9d9f2080c87dfa64d7d4a714ec1b1b87c7018

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:28.642070+00:00.

Case digest / 2ddf7fa8dc3ba65abb60ef5f381e646851e32307262d12426245fc45f4f731c6