FAILURE MAP
← Case archive

FA-66486 / Airline fare rule evaluation / Open access

Twelve-year-olds priced as children · case 01

Travellers on or after their 12th birthday still receive the child discount.

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

ROOT CAUSE

The child bracket includes age 12.

VERIFIED REPAIR

Children are 2 through 11 completed years.

Unsuccessful approach: Approximating twelve years as 4380 days ignores leap days and shifts the birthday boundary.

Case contract

Input {'birth','depart' ISO dates,'fare'}. Age is completed years on the departure date; a 29 February birthday falls on 1 March in non-leap years. Under 2 -> INF 10%; 2 to 11 -> CHD 75%; otherwise ADT 100%. Amount = fare*pct/100 rounded half-up to cents. Return [ptc, amount].

Why this case matters

Passenger type discounts depend on exact age at travel, with birthday and leap-day edge cases and currency rounding.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime
import decimal
N = 1
observations = []
def solve(x):
    b = datetime.date.fromisoformat(x['birth'])
    d = datetime.date.fromisoformat(x['depart'])
    try:
        bday = b.replace(year=d.year)
    except ValueError:
        bday = datetime.date(d.year, 3, 1)
    age = d.year - b.year - (1 if d < bday else 0)
    if age < 2: ptc, pct = 'INF', 10
    elif age <= 12: ptc, pct = 'CHD', 75
    else: ptc, pct = 'ADT', 100
    amt = (decimal.Decimal(str(x['fare'])) * pct / 100).quantize(decimal.Decimal('0.01'), rounding=decimal.ROUND_HALF_UP)
    return [ptc, float(amt)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['child day before 12th birthday', {'birth': '2016-05-11', 'depart': '2028-05-10', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 413.5}, ['ADT', 413.5]], ['infant turns two on travel day', {'birth': '2026-03-01', 'depart': '2028-03-01', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 301.0}, ['INF', 30.1]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-11', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-01', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2015-02-22', 'depart': '2027-02-15', 'fare': 171.9}, ['CHD', 128.93]], ['sampled case 2', {'birth': '2023-11-19', 'depart': '2029-03-25', 'fare': 1444.58}, ['CHD', 1083.44]], ['sampled case 3', {'birth': '2027-08-22', 'depart': '2029-08-21', 'fare': 608.88}, ['INF', 60.89]]], [['child day before 12th birthday', {'birth': '2016-05-12', 'depart': '2028-05-11', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 414.5}, ['ADT', 414.5]], ['infant turns two on travel day', {'birth': '2026-03-02', 'depart': '2028-03-02', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 302.0}, ['INF', 30.2]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-12', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-02', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2025-04-03', 'depart': '2027-04-02', 'fare': 516.1}, ['INF', 51.61]], ['sampled case 2', {'birth': '2026-06-08', 'depart': '2028-06-06', 'fare': 952.7}, ['INF', 95.27]], ['sampled case 3', {'birth': '2017-05-05', 'depart': '2029-05-02', 'fare': 942.13}, ['CHD', 706.6]]], [['child day before 12th birthday', {'birth': '2016-05-13', 'depart': '2028-05-12', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 415.5}, ['ADT', 415.5]], ['infant turns two on travel day', {'birth': '2026-03-03', 'depart': '2028-03-03', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 303.0}, ['INF', 30.3]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-13', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-03', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2017-10-23', 'depart': '2029-10-19', 'fare': 1447.34}, ['CHD', 1085.51]], ['sampled case 2', {'birth': '2016-03-06', 'depart': '2028-02-28', 'fare': 1074.9}, ['CHD', 806.18]], ['sampled case 3', {'birth': '2015-06-23', 'depart': '2027-06-20', 'fare': 768.6}, ['CHD', 576.45]]], [['child day before 12th birthday', {'birth': '2016-05-14', 'depart': '2028-05-13', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 416.5}, ['ADT', 416.5]], ['infant turns two on travel day', {'birth': '2026-03-04', 'depart': '2028-03-04', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 304.0}, ['INF', 30.4]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-14', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-04', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2028-06-21', 'depart': '2029-08-22', 'fare': 642.31}, ['INF', 64.23]], ['sampled case 2', {'birth': '2019-06-26', 'depart': '2027-12-23', 'fare': 211.9}, ['CHD', 158.93]], ['sampled case 3', {'birth': '2025-09-18', 'depart': '2027-09-19', 'fare': 1456.7}, ['CHD', 1092.53]]], [['child day before 12th birthday', {'birth': '2016-05-15', 'depart': '2028-05-14', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 417.5}, ['ADT', 417.5]], ['infant turns two on travel day', {'birth': '2026-03-05', 'depart': '2028-03-05', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 305.0}, ['INF', 30.5]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-15', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-05', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2026-08-03', 'depart': '2028-07-31', 'fare': 265.0}, ['INF', 26.5]], ['sampled case 2', {'birth': '2026-08-19', 'depart': '2028-08-19', 'fare': 820.15}, ['CHD', 615.11]], ['sampled case 3', {'birth': '2017-09-28', 'depart': '2029-09-26', 'fare': 855.8}, ['CHD', 641.85]]]]
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
child day before 12th birthday['CHD', 309.38]['CHD', 309.38]Passed
12th birthday on departure['CHD', 310.13]['ADT', 413.5]Failed
infant turns two on travel day['CHD', 299.93]['CHD', 299.93]Passed
infant one day before second birthday['INF', 25.01]['INF', 25.01]Passed
leap day birthday on Feb 28['CHD', 225.0]['CHD', 225.0]Passed
leap day infant in non-leap year['INF', 30.1]['INF', 30.1]Passed
leap day infant on 1 March['CHD', 232.5]['CHD', 232.5]Passed
half-cent child fare['CHD', 75.08]['CHD', 75.08]Passed
adult later in year['ADT', 823.33]['ADT', 823.33]Passed
sampled case 1['CHD', 128.93]['CHD', 128.93]Passed
sampled case 2['CHD', 1083.44]['CHD', 1083.44]Passed
sampled case 3['INF', 60.89]['INF', 60.89]Passed

SHA-256 / 946962c850f22c27c2f88f7d453a156c1b76ddb7ca45bd5c9c273e9ca3ba3225

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime
import decimal
N = 1
observations = []
def solve(x):
    b = datetime.date.fromisoformat(x['birth'])
    d = datetime.date.fromisoformat(x['depart'])
    try:
        bday = b.replace(year=d.year)
    except ValueError:
        bday = datetime.date(d.year, 3, 1)
    age = d.year - b.year - (1 if d < bday else 0)
    if age < 2: ptc, pct = 'INF', 10
    elif (d - b).days < 12 * 365: ptc, pct = 'CHD', 75
    else: ptc, pct = 'ADT', 100
    amt = (decimal.Decimal(str(x['fare'])) * pct / 100).quantize(decimal.Decimal('0.01'), rounding=decimal.ROUND_HALF_UP)
    return [ptc, float(amt)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['child day before 12th birthday', {'birth': '2016-05-11', 'depart': '2028-05-10', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 413.5}, ['ADT', 413.5]], ['infant turns two on travel day', {'birth': '2026-03-01', 'depart': '2028-03-01', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 301.0}, ['INF', 30.1]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-11', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-01', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2015-02-22', 'depart': '2027-02-15', 'fare': 171.9}, ['CHD', 128.93]], ['sampled case 2', {'birth': '2023-11-19', 'depart': '2029-03-25', 'fare': 1444.58}, ['CHD', 1083.44]], ['sampled case 3', {'birth': '2027-08-22', 'depart': '2029-08-21', 'fare': 608.88}, ['INF', 60.89]]], [['child day before 12th birthday', {'birth': '2016-05-12', 'depart': '2028-05-11', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 414.5}, ['ADT', 414.5]], ['infant turns two on travel day', {'birth': '2026-03-02', 'depart': '2028-03-02', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 302.0}, ['INF', 30.2]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-12', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-02', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2025-04-03', 'depart': '2027-04-02', 'fare': 516.1}, ['INF', 51.61]], ['sampled case 2', {'birth': '2026-06-08', 'depart': '2028-06-06', 'fare': 952.7}, ['INF', 95.27]], ['sampled case 3', {'birth': '2017-05-05', 'depart': '2029-05-02', 'fare': 942.13}, ['CHD', 706.6]]], [['child day before 12th birthday', {'birth': '2016-05-13', 'depart': '2028-05-12', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 415.5}, ['ADT', 415.5]], ['infant turns two on travel day', {'birth': '2026-03-03', 'depart': '2028-03-03', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 303.0}, ['INF', 30.3]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-13', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-03', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2017-10-23', 'depart': '2029-10-19', 'fare': 1447.34}, ['CHD', 1085.51]], ['sampled case 2', {'birth': '2016-03-06', 'depart': '2028-02-28', 'fare': 1074.9}, ['CHD', 806.18]], ['sampled case 3', {'birth': '2015-06-23', 'depart': '2027-06-20', 'fare': 768.6}, ['CHD', 576.45]]], [['child day before 12th birthday', {'birth': '2016-05-14', 'depart': '2028-05-13', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 416.5}, ['ADT', 416.5]], ['infant turns two on travel day', {'birth': '2026-03-04', 'depart': '2028-03-04', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 304.0}, ['INF', 30.4]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-14', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-04', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2028-06-21', 'depart': '2029-08-22', 'fare': 642.31}, ['INF', 64.23]], ['sampled case 2', {'birth': '2019-06-26', 'depart': '2027-12-23', 'fare': 211.9}, ['CHD', 158.93]], ['sampled case 3', {'birth': '2025-09-18', 'depart': '2027-09-19', 'fare': 1456.7}, ['CHD', 1092.53]]], [['child day before 12th birthday', {'birth': '2016-05-15', 'depart': '2028-05-14', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 417.5}, ['ADT', 417.5]], ['infant turns two on travel day', {'birth': '2026-03-05', 'depart': '2028-03-05', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 305.0}, ['INF', 30.5]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-15', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-05', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2026-08-03', 'depart': '2028-07-31', 'fare': 265.0}, ['INF', 26.5]], ['sampled case 2', {'birth': '2026-08-19', 'depart': '2028-08-19', 'fare': 820.15}, ['CHD', 615.11]], ['sampled case 3', {'birth': '2017-09-28', 'depart': '2029-09-26', 'fare': 855.8}, ['CHD', 641.85]]]]
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
child day before 12th birthday['ADT', 412.5]['CHD', 309.38]Failed
12th birthday on departure['ADT', 413.5]['ADT', 413.5]Passed
infant turns two on travel day['CHD', 299.93]['CHD', 299.93]Passed
infant one day before second birthday['INF', 25.01]['INF', 25.01]Passed
leap day birthday on Feb 28['ADT', 300.0]['CHD', 225.0]Failed
leap day infant in non-leap year['INF', 30.1]['INF', 30.1]Passed
leap day infant on 1 March['CHD', 232.5]['CHD', 232.5]Passed
half-cent child fare['CHD', 75.08]['CHD', 75.08]Passed
adult later in year['ADT', 823.33]['ADT', 823.33]Passed
sampled case 1['CHD', 128.93]['CHD', 128.93]Passed
sampled case 2['CHD', 1083.44]['CHD', 1083.44]Passed
sampled case 3['INF', 60.89]['INF', 60.89]Passed

SHA-256 / 01324d89ae143005f069e5a417b87fef2f6f67679c17d67b951a401e0dfb1d03

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import datetime
import decimal
N = 1
observations = []
def solve(x):
    b = datetime.date.fromisoformat(x['birth'])
    d = datetime.date.fromisoformat(x['depart'])
    try:
        bday = b.replace(year=d.year)
    except ValueError:
        bday = datetime.date(d.year, 3, 1)
    age = d.year - b.year - (1 if d < bday else 0)
    if age < 2: ptc, pct = 'INF', 10
    elif age < 12: ptc, pct = 'CHD', 75
    else: ptc, pct = 'ADT', 100
    amt = (decimal.Decimal(str(x['fare'])) * pct / 100).quantize(decimal.Decimal('0.01'), rounding=decimal.ROUND_HALF_UP)
    return [ptc, float(amt)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['child day before 12th birthday', {'birth': '2016-05-11', 'depart': '2028-05-10', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 413.5}, ['ADT', 413.5]], ['infant turns two on travel day', {'birth': '2026-03-01', 'depart': '2028-03-01', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 301.0}, ['INF', 30.1]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-11', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-01', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2015-02-22', 'depart': '2027-02-15', 'fare': 171.9}, ['CHD', 128.93]], ['sampled case 2', {'birth': '2023-11-19', 'depart': '2029-03-25', 'fare': 1444.58}, ['CHD', 1083.44]], ['sampled case 3', {'birth': '2027-08-22', 'depart': '2029-08-21', 'fare': 608.88}, ['INF', 60.89]]], [['child day before 12th birthday', {'birth': '2016-05-12', 'depart': '2028-05-11', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 414.5}, ['ADT', 414.5]], ['infant turns two on travel day', {'birth': '2026-03-02', 'depart': '2028-03-02', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 302.0}, ['INF', 30.2]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-12', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-02', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2025-04-03', 'depart': '2027-04-02', 'fare': 516.1}, ['INF', 51.61]], ['sampled case 2', {'birth': '2026-06-08', 'depart': '2028-06-06', 'fare': 952.7}, ['INF', 95.27]], ['sampled case 3', {'birth': '2017-05-05', 'depart': '2029-05-02', 'fare': 942.13}, ['CHD', 706.6]]], [['child day before 12th birthday', {'birth': '2016-05-13', 'depart': '2028-05-12', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 415.5}, ['ADT', 415.5]], ['infant turns two on travel day', {'birth': '2026-03-03', 'depart': '2028-03-03', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 303.0}, ['INF', 30.3]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-13', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-03', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2017-10-23', 'depart': '2029-10-19', 'fare': 1447.34}, ['CHD', 1085.51]], ['sampled case 2', {'birth': '2016-03-06', 'depart': '2028-02-28', 'fare': 1074.9}, ['CHD', 806.18]], ['sampled case 3', {'birth': '2015-06-23', 'depart': '2027-06-20', 'fare': 768.6}, ['CHD', 576.45]]], [['child day before 12th birthday', {'birth': '2016-05-14', 'depart': '2028-05-13', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 416.5}, ['ADT', 416.5]], ['infant turns two on travel day', {'birth': '2026-03-04', 'depart': '2028-03-04', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 304.0}, ['INF', 30.4]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-14', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-04', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2028-06-21', 'depart': '2029-08-22', 'fare': 642.31}, ['INF', 64.23]], ['sampled case 2', {'birth': '2019-06-26', 'depart': '2027-12-23', 'fare': 211.9}, ['CHD', 158.93]], ['sampled case 3', {'birth': '2025-09-18', 'depart': '2027-09-19', 'fare': 1456.7}, ['CHD', 1092.53]]], [['child day before 12th birthday', {'birth': '2016-05-15', 'depart': '2028-05-14', 'fare': 412.5}, ['CHD', 309.38]], ['12th birthday on departure', {'birth': '2016-05-10', 'depart': '2028-05-10', 'fare': 417.5}, ['ADT', 417.5]], ['infant turns two on travel day', {'birth': '2026-03-05', 'depart': '2028-03-05', 'fare': 399.9}, ['CHD', 299.93]], ['infant one day before second birthday', {'birth': '2026-03-15', 'depart': '2028-03-14', 'fare': 250.05}, ['INF', 25.01]], ['leap day birthday on Feb 28', {'birth': '2016-02-29', 'depart': '2028-02-28', 'fare': 300.0}, ['CHD', 225.0]], ['leap day infant in non-leap year', {'birth': '2024-02-29', 'depart': '2026-02-28', 'fare': 305.0}, ['INF', 30.5]], ['leap day infant on 1 March', {'birth': '2024-02-29', 'depart': '2026-03-01', 'fare': 310.0}, ['CHD', 232.5]], ['half-cent child fare', {'birth': '2020-07-01', 'depart': '2027-01-15', 'fare': 100.1}, ['CHD', 75.08]], ['adult later in year', {'birth': '1990-11-30', 'depart': '2027-06-05', 'fare': 823.33}, ['ADT', 823.33]], ['sampled case 1', {'birth': '2026-08-03', 'depart': '2028-07-31', 'fare': 265.0}, ['INF', 26.5]], ['sampled case 2', {'birth': '2026-08-19', 'depart': '2028-08-19', 'fare': 820.15}, ['CHD', 615.11]], ['sampled case 3', {'birth': '2017-09-28', 'depart': '2029-09-26', 'fare': 855.8}, ['CHD', 641.85]]]]
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
child day before 12th birthday['CHD', 309.38]['CHD', 309.38]Passed
12th birthday on departure['ADT', 413.5]['ADT', 413.5]Passed
infant turns two on travel day['CHD', 299.93]['CHD', 299.93]Passed
infant one day before second birthday['INF', 25.01]['INF', 25.01]Passed
leap day birthday on Feb 28['CHD', 225.0]['CHD', 225.0]Passed
leap day infant in non-leap year['INF', 30.1]['INF', 30.1]Passed
leap day infant on 1 March['CHD', 232.5]['CHD', 232.5]Passed
half-cent child fare['CHD', 75.08]['CHD', 75.08]Passed
adult later in year['ADT', 823.33]['ADT', 823.33]Passed
sampled case 1['CHD', 128.93]['CHD', 128.93]Passed
sampled case 2['CHD', 1083.44]['CHD', 1083.44]Passed
sampled case 3['INF', 60.89]['INF', 60.89]Passed

SHA-256 / 4953940052430781e391c54fbc0d49e29d7586fc93b4766e9a822d2866e1147a

Verification & scope

A stipulated toy fare-rule contract with invented constants; it is not an ATPCO or carrier tariff implementation and makes no claim of industry-standard conformance. 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:47:44.196331+00:00.

Case digest / 6f92ecec5e21f35a94b7ba4db1d31f221fd9ccfa3644e54f6b0d3b4247323541