FAILURE MAP
← Case archive

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.

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

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 fixtureActualExpectedOutcome
generated mix 5R0R1Failed
generated mix 10R2R3Failed
unpadded monthBBPassed
effective same dayAAPassed
id tieMMPassed
expiry exclusiveBBPassed
generated mix 7NO_CARDNO_CARDPassed
generated mix 16NO_CARDR0Failed

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 fixtureActualExpectedOutcome
generated mix 5R0R1Failed
generated mix 10R2R3Failed
unpadded monthBBPassed
effective same dayAAPassed
id tieMMPassed
expiry exclusiveBBPassed
generated mix 7NO_CARDNO_CARDPassed
generated mix 16NO_CARDR0Failed

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 fixtureActualExpectedOutcome
generated mix 5R1R1Passed
generated mix 10R3R3Passed
unpadded monthBBPassed
effective same dayAAPassed
id tieMMPassed
expiry exclusiveBBPassed
generated mix 7NO_CARDNO_CARDPassed
generated mix 16R0R0Passed

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