FA-95486 / Shipping rate zone lookup / Open access
Rate card: dates compared as text · case 01
October cards are treated as older than February cards when months are not zero padded.
ROOT CAUSE
Effective and expiry dates are compared as strings.
VERIFIED REPAIR
Parse dates into numeric (year, month, day) tuples before comparing.
Unsuccessful approach: Removing hyphens still compares unpadded digit strings lexically.
Case contract
cards [[card_id, effective_from, expires or None, version]] with dates "Y-M-D" that may lack zero padding. A card applies when effective_from <= ship date < expires. Choose the latest effective_from, then highest version, then smallest card_id. None -> "NO_CARD".
Why this case matters
Carriers publish dated rate cards; each shipment must use the card in force on its ship date.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(cards, ship_date):
def d(s):
return s
ship = d(ship_date)
best = None
for cid, frm, exp, ver in cards:
if d(frm) > ship:
continue
if exp is not None and ship >= d(exp):
continue
key = (d(frm), ver)
if best is None or key > best[0] or (key == best[0] and cid < best[1]):
best = (key, cid)
return best[1] if best else 'NO_CARD'
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['generated mix 5', [[['R0', '2026-11-1', None, 1], ['R1', '2025-12-31', '2026-11-1', 2]], '2026-3-15'], 'R1'], ['generated mix 10', [[['R0', '2025-12-31', '2026-2-1', 1], ['R1', '2026-10-1', '2026-11-1', 3], ['R2', '2026-11-1', None, 1], ['R3', '2026-01-15', None, 3], ['R4', '2026-1-5', '2026-10-1', 3]], '2026-2-1'], 'R3'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 7', [[['R0', '2026-10-1', None, 2]], '2025-12-31'], 'NO_CARD'], ['generated mix 16', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-9-30', '2026-10-1', 3]], '2026-10-15'], 'R0']], [['generated mix 30', [[['R0', '2026-1-5', '2026-2-1', 1], ['R1', '2026-11-1', '2026-2-1', 1], ['R2', '2025-12-31', '2026-2-1', 2], ['R3', '2026-10-1', '2026-11-1', 3]], '2026-01-15'], 'R0'], ['generated mix 22', [[['R0', '2026-2-1', '2026-2-1', 2], ['R1', '2026-9-30', '2026-2-1', 1], ['R2', '2026-9-30', '2026-11-1', 2], ['R3', '2026-2-1', '2026-2-1', 1], ['R4', '2026-2-1', '2026-10-1', 3]], '2026-3-15'], 'R4'], ['version tie', [[['A', '2026-1-1', None, 1], ['B', '2026-1-1', None, 2]], '2026-5-1'], 'B'], ['future only', [[['A', '2027-1-1', None, 1]], '2026-5-1'], 'NO_CARD'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 9', [[['R0', '2026-01-15', '2026-2-1', 1], ['R1', '2025-12-31', '2026-2-1', 3], ['R2', '2026-9-30', '2026-10-1', 3], ['R3', '2026-10-1', '2026-2-1', 1]], '2025-12-31'], 'R1'], ['generated mix 17', [[['R0', '2026-2-1', '2026-11-1', 2], ['R1', '2026-01-15', '2026-10-1', 3], ['R2', '2026-10-1', None, 2]], '2026-11-1'], 'R2'], ['generated mix 26', [[['R0', '2026-2-1', None, 2], ['R1', '2025-12-31', '2026-11-1', 3], ['R2', '2025-12-31', None, 2], ['R3', '2026-9-30', None, 2]], '2026-3-15'], 'R0']], [['generated mix 41', [[['R0', '2026-01-15', '2026-11-1', 2], ['R1', '2026-10-1', '2026-10-1', 3], ['R2', '2026-2-1', None, 3]], '2026-11-1'], 'R2'], ['generated mix 36', [[['R0', '2026-01-15', '2026-2-1', 3], ['R1', '2026-11-1', '2026-2-1', 3], ['R2', '2026-01-15', '2026-10-1', 3], ['R3', '2026-9-30', '2026-2-1', 2], ['R4', '2026-2-1', '2026-11-1', 3]], '2026-3-15'], 'R4'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['generated mix 20', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-11-1', None, 3], ['R2', '2026-9-30', None, 3], ['R3', '2025-12-31', None, 1]], '2026-2-1'], 'R3'], ['generated mix 28', [[['R0', '2026-2-1', '2026-10-1', 1]], '2026-2-1'], 'R0'], ['generated mix 37', [[['R0', '2026-9-30', '2026-10-1', 2], ['R1', '2026-2-1', None, 1], ['R2', '2026-1-5', None, 2], ['R3', '2026-11-1', '2026-11-1', 1], ['R4', '2026-1-5', '2026-2-1', 3]], '2026-11-1'], 'R1']], [['generated mix 53', [[['R0', '2026-11-1', '2026-2-1', 3], ['R1', '2026-10-1', None, 3], ['R2', '2026-2-1', None, 1], ['R3', '2026-1-5', '2026-2-1', 3], ['R4', '2026-9-30', None, 1]], '2026-11-1'], 'R1'], ['generated mix 47', [[['R0', '2026-2-1', '2026-11-1', 3], ['R1', '2025-12-31', '2026-10-1', 1], ['R2', '2026-10-1', '2026-11-1', 1], ['R3', '2026-10-1', '2026-10-1', 2]], '2026-2-1'], 'R0'], ['version tie', [[['A', '2026-1-1', None, 1], ['B', '2026-1-1', None, 2]], '2026-5-1'], 'B'], ['future only', [[['A', '2027-1-1', None, 1]], '2026-5-1'], 'NO_CARD'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 31', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-01-15', None, 3], ['R2', '2026-10-1', None, 3], ['R3', '2026-10-1', '2026-2-1', 2], ['R4', '2026-11-1', '2026-11-1', 2]], '2026-10-15'], 'R2'], ['generated mix 39', [[['R0', '2025-12-31', '2026-10-1', 1], ['R1', '2026-01-15', None, 2], ['R2', '2026-1-5', '2026-2-1', 1], ['R3', '2026-1-5', None, 2]], '2026-11-1'], 'R1'], ['generated mix 48', [[['R0', '2026-10-1', None, 1], ['R1', '2026-9-30', '2026-2-1', 3], ['R2', '2026-2-1', None, 3], ['R3', '2025-12-31', '2026-2-1', 3]], '2026-3-15'], 'R2']], [['generated mix 78', [[['R0', '2026-9-30', '2026-10-1', 2], ['R1', '2025-12-31', None, 1], ['R2', '2026-9-30', '2026-2-1', 2], ['R3', '2026-10-1', None, 2], ['R4', '2026-01-15', '2026-10-1', 1]], '2026-2-1'], 'R4'], ['generated mix 54', [[['R0', '2026-1-5', None, 3], ['R1', '2026-2-1', None, 3], ['R2', '2026-1-5', None, 3]], '2026-10-15'], 'R1'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['generated mix 42', [[['R0', '2026-2-1', '2026-2-1', 2]], '2026-2-1'], 'NO_CARD'], ['generated mix 50', [[['R0', '2026-1-5', None, 2], ['R1', '2026-9-30', '2026-2-1', 1], ['R2', '2026-11-1', None, 2], ['R3', '2026-01-15', '2026-2-1', 2]], '2026-9-30'], 'R0'], ['generated mix 59', [[['R0', '2025-12-31', None, 2]], '2026-11-1'], 'R0']]]
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 |
|---|---|---|---|
| generated mix 5 | R0 | R1 | Failed |
| generated mix 10 | R2 | R3 | Failed |
| unpadded month | B | B | Passed |
| effective same day | A | A | Passed |
| id tie | M | M | Passed |
| expiry exclusive | B | B | Passed |
| generated mix 7 | NO_CARD | NO_CARD | Passed |
| generated mix 16 | NO_CARD | R0 | Failed |
SHA-256 / 96642a50b1122b2de748e46d3684e7cebff72a082fd1d07388d4c13a0ff3276c
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(cards, ship_date):
def d(s):
return s.replace('-', '')
ship = d(ship_date)
best = None
for cid, frm, exp, ver in cards:
if d(frm) > ship:
continue
if exp is not None and ship >= d(exp):
continue
key = (d(frm), ver)
if best is None or key > best[0] or (key == best[0] and cid < best[1]):
best = (key, cid)
return best[1] if best else 'NO_CARD'
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['generated mix 5', [[['R0', '2026-11-1', None, 1], ['R1', '2025-12-31', '2026-11-1', 2]], '2026-3-15'], 'R1'], ['generated mix 10', [[['R0', '2025-12-31', '2026-2-1', 1], ['R1', '2026-10-1', '2026-11-1', 3], ['R2', '2026-11-1', None, 1], ['R3', '2026-01-15', None, 3], ['R4', '2026-1-5', '2026-10-1', 3]], '2026-2-1'], 'R3'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 7', [[['R0', '2026-10-1', None, 2]], '2025-12-31'], 'NO_CARD'], ['generated mix 16', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-9-30', '2026-10-1', 3]], '2026-10-15'], 'R0']], [['generated mix 30', [[['R0', '2026-1-5', '2026-2-1', 1], ['R1', '2026-11-1', '2026-2-1', 1], ['R2', '2025-12-31', '2026-2-1', 2], ['R3', '2026-10-1', '2026-11-1', 3]], '2026-01-15'], 'R0'], ['generated mix 22', [[['R0', '2026-2-1', '2026-2-1', 2], ['R1', '2026-9-30', '2026-2-1', 1], ['R2', '2026-9-30', '2026-11-1', 2], ['R3', '2026-2-1', '2026-2-1', 1], ['R4', '2026-2-1', '2026-10-1', 3]], '2026-3-15'], 'R4'], ['version tie', [[['A', '2026-1-1', None, 1], ['B', '2026-1-1', None, 2]], '2026-5-1'], 'B'], ['future only', [[['A', '2027-1-1', None, 1]], '2026-5-1'], 'NO_CARD'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 9', [[['R0', '2026-01-15', '2026-2-1', 1], ['R1', '2025-12-31', '2026-2-1', 3], ['R2', '2026-9-30', '2026-10-1', 3], ['R3', '2026-10-1', '2026-2-1', 1]], '2025-12-31'], 'R1'], ['generated mix 17', [[['R0', '2026-2-1', '2026-11-1', 2], ['R1', '2026-01-15', '2026-10-1', 3], ['R2', '2026-10-1', None, 2]], '2026-11-1'], 'R2'], ['generated mix 26', [[['R0', '2026-2-1', None, 2], ['R1', '2025-12-31', '2026-11-1', 3], ['R2', '2025-12-31', None, 2], ['R3', '2026-9-30', None, 2]], '2026-3-15'], 'R0']], [['generated mix 41', [[['R0', '2026-01-15', '2026-11-1', 2], ['R1', '2026-10-1', '2026-10-1', 3], ['R2', '2026-2-1', None, 3]], '2026-11-1'], 'R2'], ['generated mix 36', [[['R0', '2026-01-15', '2026-2-1', 3], ['R1', '2026-11-1', '2026-2-1', 3], ['R2', '2026-01-15', '2026-10-1', 3], ['R3', '2026-9-30', '2026-2-1', 2], ['R4', '2026-2-1', '2026-11-1', 3]], '2026-3-15'], 'R4'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['generated mix 20', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-11-1', None, 3], ['R2', '2026-9-30', None, 3], ['R3', '2025-12-31', None, 1]], '2026-2-1'], 'R3'], ['generated mix 28', [[['R0', '2026-2-1', '2026-10-1', 1]], '2026-2-1'], 'R0'], ['generated mix 37', [[['R0', '2026-9-30', '2026-10-1', 2], ['R1', '2026-2-1', None, 1], ['R2', '2026-1-5', None, 2], ['R3', '2026-11-1', '2026-11-1', 1], ['R4', '2026-1-5', '2026-2-1', 3]], '2026-11-1'], 'R1']], [['generated mix 53', [[['R0', '2026-11-1', '2026-2-1', 3], ['R1', '2026-10-1', None, 3], ['R2', '2026-2-1', None, 1], ['R3', '2026-1-5', '2026-2-1', 3], ['R4', '2026-9-30', None, 1]], '2026-11-1'], 'R1'], ['generated mix 47', [[['R0', '2026-2-1', '2026-11-1', 3], ['R1', '2025-12-31', '2026-10-1', 1], ['R2', '2026-10-1', '2026-11-1', 1], ['R3', '2026-10-1', '2026-10-1', 2]], '2026-2-1'], 'R0'], ['version tie', [[['A', '2026-1-1', None, 1], ['B', '2026-1-1', None, 2]], '2026-5-1'], 'B'], ['future only', [[['A', '2027-1-1', None, 1]], '2026-5-1'], 'NO_CARD'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 31', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-01-15', None, 3], ['R2', '2026-10-1', None, 3], ['R3', '2026-10-1', '2026-2-1', 2], ['R4', '2026-11-1', '2026-11-1', 2]], '2026-10-15'], 'R2'], ['generated mix 39', [[['R0', '2025-12-31', '2026-10-1', 1], ['R1', '2026-01-15', None, 2], ['R2', '2026-1-5', '2026-2-1', 1], ['R3', '2026-1-5', None, 2]], '2026-11-1'], 'R1'], ['generated mix 48', [[['R0', '2026-10-1', None, 1], ['R1', '2026-9-30', '2026-2-1', 3], ['R2', '2026-2-1', None, 3], ['R3', '2025-12-31', '2026-2-1', 3]], '2026-3-15'], 'R2']], [['generated mix 78', [[['R0', '2026-9-30', '2026-10-1', 2], ['R1', '2025-12-31', None, 1], ['R2', '2026-9-30', '2026-2-1', 2], ['R3', '2026-10-1', None, 2], ['R4', '2026-01-15', '2026-10-1', 1]], '2026-2-1'], 'R4'], ['generated mix 54', [[['R0', '2026-1-5', None, 3], ['R1', '2026-2-1', None, 3], ['R2', '2026-1-5', None, 3]], '2026-10-15'], 'R1'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['generated mix 42', [[['R0', '2026-2-1', '2026-2-1', 2]], '2026-2-1'], 'NO_CARD'], ['generated mix 50', [[['R0', '2026-1-5', None, 2], ['R1', '2026-9-30', '2026-2-1', 1], ['R2', '2026-11-1', None, 2], ['R3', '2026-01-15', '2026-2-1', 2]], '2026-9-30'], 'R0'], ['generated mix 59', [[['R0', '2025-12-31', None, 2]], '2026-11-1'], 'R0']]]
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 |
|---|---|---|---|
| generated mix 5 | R0 | R1 | Failed |
| generated mix 10 | R2 | R3 | Failed |
| unpadded month | B | B | Passed |
| effective same day | A | A | Passed |
| id tie | M | M | Passed |
| expiry exclusive | B | B | Passed |
| generated mix 7 | NO_CARD | NO_CARD | Passed |
| generated mix 16 | NO_CARD | R0 | Failed |
SHA-256 / fc1ebf50343803a7477545d383989431a27329863163b3ade81663b053deaefc
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(cards, ship_date):
def d(s):
return tuple(int(x) for x in s.split('-'))
ship = d(ship_date)
best = None
for cid, frm, exp, ver in cards:
if d(frm) > ship:
continue
if exp is not None and ship >= d(exp):
continue
key = (d(frm), ver)
if best is None or key > best[0] or (key == best[0] and cid < best[1]):
best = (key, cid)
return best[1] if best else 'NO_CARD'
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['generated mix 5', [[['R0', '2026-11-1', None, 1], ['R1', '2025-12-31', '2026-11-1', 2]], '2026-3-15'], 'R1'], ['generated mix 10', [[['R0', '2025-12-31', '2026-2-1', 1], ['R1', '2026-10-1', '2026-11-1', 3], ['R2', '2026-11-1', None, 1], ['R3', '2026-01-15', None, 3], ['R4', '2026-1-5', '2026-10-1', 3]], '2026-2-1'], 'R3'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 7', [[['R0', '2026-10-1', None, 2]], '2025-12-31'], 'NO_CARD'], ['generated mix 16', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-9-30', '2026-10-1', 3]], '2026-10-15'], 'R0']], [['generated mix 30', [[['R0', '2026-1-5', '2026-2-1', 1], ['R1', '2026-11-1', '2026-2-1', 1], ['R2', '2025-12-31', '2026-2-1', 2], ['R3', '2026-10-1', '2026-11-1', 3]], '2026-01-15'], 'R0'], ['generated mix 22', [[['R0', '2026-2-1', '2026-2-1', 2], ['R1', '2026-9-30', '2026-2-1', 1], ['R2', '2026-9-30', '2026-11-1', 2], ['R3', '2026-2-1', '2026-2-1', 1], ['R4', '2026-2-1', '2026-10-1', 3]], '2026-3-15'], 'R4'], ['version tie', [[['A', '2026-1-1', None, 1], ['B', '2026-1-1', None, 2]], '2026-5-1'], 'B'], ['future only', [[['A', '2027-1-1', None, 1]], '2026-5-1'], 'NO_CARD'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 9', [[['R0', '2026-01-15', '2026-2-1', 1], ['R1', '2025-12-31', '2026-2-1', 3], ['R2', '2026-9-30', '2026-10-1', 3], ['R3', '2026-10-1', '2026-2-1', 1]], '2025-12-31'], 'R1'], ['generated mix 17', [[['R0', '2026-2-1', '2026-11-1', 2], ['R1', '2026-01-15', '2026-10-1', 3], ['R2', '2026-10-1', None, 2]], '2026-11-1'], 'R2'], ['generated mix 26', [[['R0', '2026-2-1', None, 2], ['R1', '2025-12-31', '2026-11-1', 3], ['R2', '2025-12-31', None, 2], ['R3', '2026-9-30', None, 2]], '2026-3-15'], 'R0']], [['generated mix 41', [[['R0', '2026-01-15', '2026-11-1', 2], ['R1', '2026-10-1', '2026-10-1', 3], ['R2', '2026-2-1', None, 3]], '2026-11-1'], 'R2'], ['generated mix 36', [[['R0', '2026-01-15', '2026-2-1', 3], ['R1', '2026-11-1', '2026-2-1', 3], ['R2', '2026-01-15', '2026-10-1', 3], ['R3', '2026-9-30', '2026-2-1', 2], ['R4', '2026-2-1', '2026-11-1', 3]], '2026-3-15'], 'R4'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['generated mix 20', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-11-1', None, 3], ['R2', '2026-9-30', None, 3], ['R3', '2025-12-31', None, 1]], '2026-2-1'], 'R3'], ['generated mix 28', [[['R0', '2026-2-1', '2026-10-1', 1]], '2026-2-1'], 'R0'], ['generated mix 37', [[['R0', '2026-9-30', '2026-10-1', 2], ['R1', '2026-2-1', None, 1], ['R2', '2026-1-5', None, 2], ['R3', '2026-11-1', '2026-11-1', 1], ['R4', '2026-1-5', '2026-2-1', 3]], '2026-11-1'], 'R1']], [['generated mix 53', [[['R0', '2026-11-1', '2026-2-1', 3], ['R1', '2026-10-1', None, 3], ['R2', '2026-2-1', None, 1], ['R3', '2026-1-5', '2026-2-1', 3], ['R4', '2026-9-30', None, 1]], '2026-11-1'], 'R1'], ['generated mix 47', [[['R0', '2026-2-1', '2026-11-1', 3], ['R1', '2025-12-31', '2026-10-1', 1], ['R2', '2026-10-1', '2026-11-1', 1], ['R3', '2026-10-1', '2026-10-1', 2]], '2026-2-1'], 'R0'], ['version tie', [[['A', '2026-1-1', None, 1], ['B', '2026-1-1', None, 2]], '2026-5-1'], 'B'], ['future only', [[['A', '2027-1-1', None, 1]], '2026-5-1'], 'NO_CARD'], ['expiry exclusive', [[['A', '2026-1-1', '2026-3-1', 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'B'], ['generated mix 31', [[['R0', '2026-9-30', '2026-11-1', 1], ['R1', '2026-01-15', None, 3], ['R2', '2026-10-1', None, 3], ['R3', '2026-10-1', '2026-2-1', 2], ['R4', '2026-11-1', '2026-11-1', 2]], '2026-10-15'], 'R2'], ['generated mix 39', [[['R0', '2025-12-31', '2026-10-1', 1], ['R1', '2026-01-15', None, 2], ['R2', '2026-1-5', '2026-2-1', 1], ['R3', '2026-1-5', None, 2]], '2026-11-1'], 'R1'], ['generated mix 48', [[['R0', '2026-10-1', None, 1], ['R1', '2026-9-30', '2026-2-1', 3], ['R2', '2026-2-1', None, 3], ['R3', '2025-12-31', '2026-2-1', 3]], '2026-3-15'], 'R2']], [['generated mix 78', [[['R0', '2026-9-30', '2026-10-1', 2], ['R1', '2025-12-31', None, 1], ['R2', '2026-9-30', '2026-2-1', 2], ['R3', '2026-10-1', None, 2], ['R4', '2026-01-15', '2026-10-1', 1]], '2026-2-1'], 'R4'], ['generated mix 54', [[['R0', '2026-1-5', None, 3], ['R1', '2026-2-1', None, 3], ['R2', '2026-1-5', None, 3]], '2026-10-15'], 'R1'], ['unpadded month', [[['A', '2026-2-1', None, 1], ['B', '2026-10-1', None, 1]], '2026-10-15'], 'B'], ['effective same day', [[['A', '2026-3-1', None, 1], ['B', '2025-1-1', None, 1]], '2026-3-1'], 'A'], ['id tie', [[['Z', '2026-1-1', None, 2], ['M', '2026-1-1', None, 2]], '2026-5-1'], 'M'], ['generated mix 42', [[['R0', '2026-2-1', '2026-2-1', 2]], '2026-2-1'], 'NO_CARD'], ['generated mix 50', [[['R0', '2026-1-5', None, 2], ['R1', '2026-9-30', '2026-2-1', 1], ['R2', '2026-11-1', None, 2], ['R3', '2026-01-15', '2026-2-1', 2]], '2026-9-30'], 'R0'], ['generated mix 59', [[['R0', '2025-12-31', None, 2]], '2026-11-1'], 'R0']]]
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 |
|---|---|---|---|
| generated mix 5 | R1 | R1 | Passed |
| generated mix 10 | R3 | R3 | Passed |
| unpadded month | B | B | Passed |
| effective same day | A | A | Passed |
| id tie | M | M | Passed |
| expiry exclusive | B | B | Passed |
| generated mix 7 | NO_CARD | NO_CARD | Passed |
| generated mix 16 | R0 | R0 | Passed |
SHA-256 / d09491e55290a4d56a9c2cf61f9aaa1635f4d27a04b2536c2dd459e4b5baac71
Verification & scope
Stipulated date format and selection policy. 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:52:14.136986+00:00.
Case digest / 9cd647d9e637f3a956bc73c4bfce406611389e5b053627c16ba2a3c8f545aa2b