{"abstract":"A child travelling the day before the 12th birthday is priced as an adult.","category":"Airline fare rule evaluation","checks":12,"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].","evaluation_group":"w2-airline-fare-rules-passenger-type-age","failed_approach":"Comparing months only still misjudges departures earlier in the birthday month.","family":"w2-airline-fare-rules-passenger-type-age-age-year-difference","id":"FA-66481","implementations":{"attempt":{"sha256":"bd01ca3e397f300c7cfcab23bc28e33293094ac1dec048e4c6a7b0e494796029","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nimport decimal\nN = 1\nobservations = []\ndef solve(x):\n    b = datetime.date.fromisoformat(x['birth'])\n    d = datetime.date.fromisoformat(x['depart'])\n    try:\n        bday = b.replace(year=d.year)\n    except ValueError:\n        bday = datetime.date(d.year, 3, 1)\n    age = d.year - b.year - (1 if d.month < b.month else 0)\n    if age < 2: ptc, pct = 'INF', 10\n    elif age < 12: ptc, pct = 'CHD', 75\n    else: ptc, pct = 'ADT', 100\n    amt = (decimal.Decimal(str(x['fare'])) * pct / 100).quantize(decimal.Decimal('0.01'), rounding=decimal.ROUND_HALF_UP)\n    return [ptc, float(amt)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['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]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"1df9c6719a98b76a324d5ddd46e0ae0bdf9366f967bbc1cf5c767bbe0192b01c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nimport decimal\nN = 1\nobservations = []\ndef solve(x):\n    b = datetime.date.fromisoformat(x['birth'])\n    d = datetime.date.fromisoformat(x['depart'])\n    try:\n        bday = b.replace(year=d.year)\n    except ValueError:\n        bday = datetime.date(d.year, 3, 1)\n    age = d.year - b.year\n    if age < 2: ptc, pct = 'INF', 10\n    elif age < 12: ptc, pct = 'CHD', 75\n    else: ptc, pct = 'ADT', 100\n    amt = (decimal.Decimal(str(x['fare'])) * pct / 100).quantize(decimal.Decimal('0.01'), rounding=decimal.ROUND_HALF_UP)\n    return [ptc, float(amt)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['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]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"4953940052430781e391c54fbc0d49e29d7586fc93b4766e9a822d2866e1147a","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport datetime\nimport decimal\nN = 1\nobservations = []\ndef solve(x):\n    b = datetime.date.fromisoformat(x['birth'])\n    d = datetime.date.fromisoformat(x['depart'])\n    try:\n        bday = b.replace(year=d.year)\n    except ValueError:\n        bday = datetime.date(d.year, 3, 1)\n    age = d.year - b.year - (1 if d < bday else 0)\n    if age < 2: ptc, pct = 'INF', 10\n    elif age < 12: ptc, pct = 'CHD', 75\n    else: ptc, pct = 'ADT', 100\n    amt = (decimal.Decimal(str(x['fare'])) * pct / 100).quantize(decimal.Decimal('0.01'), rounding=decimal.ROUND_HALF_UP)\n    return [ptc, float(amt)]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[['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]]]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"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.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-airline-fare-rules-passenger-type-age-age-year-difference","generated_at":"2026-09-29T14:47:44.180972+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Passenger type discounts depend on exact age at travel, with birthday and leap-day edge cases and currency rounding.","repair":"Subtract one year when departure precedes the birthday in that year.","root_cause":"The age ignores whether the birthday has occurred yet in the departure year.","sha256":"127d38785b535256ddbc0fa9ff4feb96369200873cceb263b7e41b1977472e7a","title":"Age taken as the difference of calendar years · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.826,"exit_code":1,"observations":[{"actual":["ADT",412.5],"check":"child day before 12th birthday","expected":["CHD",309.38],"passed":false},{"actual":["ADT",413.5],"check":"12th birthday on departure","expected":["ADT",413.5],"passed":true},{"actual":["CHD",299.93],"check":"infant turns two on travel day","expected":["CHD",299.93],"passed":true},{"actual":["CHD",187.54],"check":"infant one day before second birthday","expected":["INF",25.01],"passed":false},{"actual":["ADT",300.0],"check":"leap day birthday on Feb 28","expected":["CHD",225.0],"passed":false},{"actual":["CHD",225.75],"check":"leap day infant in non-leap year","expected":["INF",30.1],"passed":false},{"actual":["CHD",232.5],"check":"leap day infant on 1 March","expected":["CHD",232.5],"passed":true},{"actual":["CHD",75.08],"check":"half-cent child fare","expected":["CHD",75.08],"passed":true},{"actual":["ADT",823.33],"check":"adult later in year","expected":["ADT",823.33],"passed":true},{"actual":["ADT",171.9],"check":"sampled case 1","expected":["CHD",128.93],"passed":false},{"actual":["CHD",1083.44],"check":"sampled case 2","expected":["CHD",1083.44],"passed":true},{"actual":["CHD",456.66],"check":"sampled case 3","expected":["INF",60.89],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"child day before 12th birthday\", \"actual\": [\"ADT\", 412.5], \"expected\": [\"CHD\", 309.38], \"passed\": false}, {\"check\": \"12th birthday on departure\", \"actual\": [\"ADT\", 413.5], \"expected\": [\"ADT\", 413.5], \"passed\": true}, {\"check\": \"infant turns two on travel day\", \"actual\": [\"CHD\", 299.93], \"expected\": [\"CHD\", 299.93], \"passed\": true}, {\"check\": \"infant one day before second birthday\", \"actual\": [\"CHD\", 187.54], \"expected\": [\"INF\", 25.01], \"passed\": false}, {\"check\": \"leap day birthday on Feb 28\", \"actual\": [\"ADT\", 300.0], \"expected\": [\"CHD\", 225.0], \"passed\": false}, {\"check\": \"leap day infant in non-leap year\", \"actual\": [\"CHD\", 225.75], \"expected\": [\"INF\", 30.1], \"passed\": false}, {\"check\": \"leap day infant on 1 March\", \"actual\": [\"CHD\", 232.5], \"expected\": [\"CHD\", 232.5], \"passed\": true}, {\"check\": \"half-cent child fare\", \"actual\": [\"CHD\", 75.08], \"expected\": [\"CHD\", 75.08], \"passed\": true}, {\"check\": \"adult later in year\", \"actual\": [\"ADT\", 823.33], \"expected\": [\"ADT\", 823.33], \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": [\"ADT\", 171.9], \"expected\": [\"CHD\", 128.93], \"passed\": false}, {\"check\": \"sampled case 2\", \"actual\": [\"CHD\", 1083.44], \"expected\": [\"CHD\", 1083.44], \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": [\"CHD\", 456.66], \"expected\": [\"INF\", 60.89], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.098,"exit_code":1,"observations":[{"actual":["ADT",412.5],"check":"child day before 12th birthday","expected":["CHD",309.38],"passed":false},{"actual":["ADT",413.5],"check":"12th birthday on departure","expected":["ADT",413.5],"passed":true},{"actual":["CHD",299.93],"check":"infant turns two on travel day","expected":["CHD",299.93],"passed":true},{"actual":["CHD",187.54],"check":"infant one day before second birthday","expected":["INF",25.01],"passed":false},{"actual":["ADT",300.0],"check":"leap day birthday on Feb 28","expected":["CHD",225.0],"passed":false},{"actual":["CHD",225.75],"check":"leap day infant in non-leap year","expected":["INF",30.1],"passed":false},{"actual":["CHD",232.5],"check":"leap day infant on 1 March","expected":["CHD",232.5],"passed":true},{"actual":["CHD",75.08],"check":"half-cent child fare","expected":["CHD",75.08],"passed":true},{"actual":["ADT",823.33],"check":"adult later in year","expected":["ADT",823.33],"passed":true},{"actual":["ADT",171.9],"check":"sampled case 1","expected":["CHD",128.93],"passed":false},{"actual":["CHD",1083.44],"check":"sampled case 2","expected":["CHD",1083.44],"passed":true},{"actual":["CHD",456.66],"check":"sampled case 3","expected":["INF",60.89],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"child day before 12th birthday\", \"actual\": [\"ADT\", 412.5], \"expected\": [\"CHD\", 309.38], \"passed\": false}, {\"check\": \"12th birthday on departure\", \"actual\": [\"ADT\", 413.5], \"expected\": [\"ADT\", 413.5], \"passed\": true}, {\"check\": \"infant turns two on travel day\", \"actual\": [\"CHD\", 299.93], \"expected\": [\"CHD\", 299.93], \"passed\": true}, {\"check\": \"infant one day before second birthday\", \"actual\": [\"CHD\", 187.54], \"expected\": [\"INF\", 25.01], \"passed\": false}, {\"check\": \"leap day birthday on Feb 28\", \"actual\": [\"ADT\", 300.0], \"expected\": [\"CHD\", 225.0], \"passed\": false}, {\"check\": \"leap day infant in non-leap year\", \"actual\": [\"CHD\", 225.75], \"expected\": [\"INF\", 30.1], \"passed\": false}, {\"check\": \"leap day infant on 1 March\", \"actual\": [\"CHD\", 232.5], \"expected\": [\"CHD\", 232.5], \"passed\": true}, {\"check\": \"half-cent child fare\", \"actual\": [\"CHD\", 75.08], \"expected\": [\"CHD\", 75.08], \"passed\": true}, {\"check\": \"adult later in year\", \"actual\": [\"ADT\", 823.33], \"expected\": [\"ADT\", 823.33], \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": [\"ADT\", 171.9], \"expected\": [\"CHD\", 128.93], \"passed\": false}, {\"check\": \"sampled case 2\", \"actual\": [\"CHD\", 1083.44], \"expected\": [\"CHD\", 1083.44], \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": [\"CHD\", 456.66], \"expected\": [\"INF\", 60.89], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.314,"exit_code":0,"observations":[{"actual":["CHD",309.38],"check":"child day before 12th birthday","expected":["CHD",309.38],"passed":true},{"actual":["ADT",413.5],"check":"12th birthday on departure","expected":["ADT",413.5],"passed":true},{"actual":["CHD",299.93],"check":"infant turns two on travel day","expected":["CHD",299.93],"passed":true},{"actual":["INF",25.01],"check":"infant one day before second birthday","expected":["INF",25.01],"passed":true},{"actual":["CHD",225.0],"check":"leap day birthday on Feb 28","expected":["CHD",225.0],"passed":true},{"actual":["INF",30.1],"check":"leap day infant in non-leap year","expected":["INF",30.1],"passed":true},{"actual":["CHD",232.5],"check":"leap day infant on 1 March","expected":["CHD",232.5],"passed":true},{"actual":["CHD",75.08],"check":"half-cent child fare","expected":["CHD",75.08],"passed":true},{"actual":["ADT",823.33],"check":"adult later in year","expected":["ADT",823.33],"passed":true},{"actual":["CHD",128.93],"check":"sampled case 1","expected":["CHD",128.93],"passed":true},{"actual":["CHD",1083.44],"check":"sampled case 2","expected":["CHD",1083.44],"passed":true},{"actual":["INF",60.89],"check":"sampled case 3","expected":["INF",60.89],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"child day before 12th birthday\", \"actual\": [\"CHD\", 309.38], \"expected\": [\"CHD\", 309.38], \"passed\": true}, {\"check\": \"12th birthday on departure\", \"actual\": [\"ADT\", 413.5], \"expected\": [\"ADT\", 413.5], \"passed\": true}, {\"check\": \"infant turns two on travel day\", \"actual\": [\"CHD\", 299.93], \"expected\": [\"CHD\", 299.93], \"passed\": true}, {\"check\": \"infant one day before second birthday\", \"actual\": [\"INF\", 25.01], \"expected\": [\"INF\", 25.01], \"passed\": true}, {\"check\": \"leap day birthday on Feb 28\", \"actual\": [\"CHD\", 225.0], \"expected\": [\"CHD\", 225.0], \"passed\": true}, {\"check\": \"leap day infant in non-leap year\", \"actual\": [\"INF\", 30.1], \"expected\": [\"INF\", 30.1], \"passed\": true}, {\"check\": \"leap day infant on 1 March\", \"actual\": [\"CHD\", 232.5], \"expected\": [\"CHD\", 232.5], \"passed\": true}, {\"check\": \"half-cent child fare\", \"actual\": [\"CHD\", 75.08], \"expected\": [\"CHD\", 75.08], \"passed\": true}, {\"check\": \"adult later in year\", \"actual\": [\"ADT\", 823.33], \"expected\": [\"ADT\", 823.33], \"passed\": true}, {\"check\": \"sampled case 1\", \"actual\": [\"CHD\", 128.93], \"expected\": [\"CHD\", 128.93], \"passed\": true}, {\"check\": \"sampled case 2\", \"actual\": [\"CHD\", 1083.44], \"expected\": [\"CHD\", 1083.44], \"passed\": true}, {\"check\": \"sampled case 3\", \"actual\": [\"INF\", 60.89], \"expected\": [\"INF\", 60.89], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}