{"abstract":"Riders using a code on the last valid day are told it expired.","category":"Ride-hailing fare and surge pricing","checks":7,"contract":"Validate a promo in order: expired if now_day is after expires_day (the expiry day itself is valid), exhausted if no uses remain, not_first if first-ride-only and the rider has prior rides, min_fare if the fare (cents) is below min_fare. A valid pct promo takes value% of the fare (floored), capped at cap cents when cap is not None (a cap of 0 means a zero discount); a flat promo takes value but never more than the fare. Ride credits then cover up to the remaining fare. Return discount, credit used, amount due and reason.","evaluation_group":"w2-ride-hailing-fare-surge-promo-and-credits","failed_approach":"Comparing seconds against a day index expires every code.","family":"w2-ride-hailing-fare-surge-promo-and-credits-expiry-day-inclusive","id":"FA-85586","implementations":{"attempt":{"sha256":"1849b8b2694009985860e3acb6199cd799c2043a7977288954ec8867b05fe0c3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(promo, ride, now_day):\n    reason = None\n    if now_day * 86400 > promo['expires_day']:\n        reason = 'expired'\n    elif promo['uses_left'] <= 0:\n        reason = 'exhausted'\n    elif promo['first_ride_only'] and ride['rider_rides'] > 0:\n        reason = 'not_first'\n    elif ride['fare'] < promo['min_fare']:\n        reason = 'min_fare'\n    disc = 0\n    if reason is None:\n        if promo['kind'] == 'pct':\n            disc = ride['fare'] * promo['value'] // 100\n            if promo['cap'] is not None:\n                disc = min(disc, promo['cap'])\n        else:\n            disc = min(promo['value'], ride['fare'])\n    credit = min(ride['credits'], ride['fare'] - disc)\n    return {'discount': disc, 'credit_used': credit, 'due': ride['fare'] - disc - credit, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: expiry day inclusive',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 50, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 5000, 'fare': 3315, 'rider_rides': 1}, 100],\n   {'credit_used': 3315, 'discount': 0, 'due': 0, 'reason': 'not_first'}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 3279, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 3279, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 5000, 'fare': 700, 'rider_rides': 1}, 101],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 1}, 101],\n   {'credit_used': 2400, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'exhausted'}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 3865, 'rider_rides': 5}, 101],\n   {'credit_used': 3865, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 3055, 'rider_rides': 0}, 100],\n   {'credit_used': 555, 'discount': 2500, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 250, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 500, 'due': 1900, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 1318, 'rider_rides': 0}, 101],\n   {'credit_used': 1318, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 525, 'discount': 525, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 1}, 99],\n   {'credit_used': 1200, 'discount': 1200, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 240, 'due': 2160, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'})]]\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":"b53ec76200170cfe612a3457664e8d0af53416d3777bfa4138801cb7df0264fd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(promo, ride, now_day):\n    reason = None\n    if now_day >= promo['expires_day']:\n        reason = 'expired'\n    elif promo['uses_left'] <= 0:\n        reason = 'exhausted'\n    elif promo['first_ride_only'] and ride['rider_rides'] > 0:\n        reason = 'not_first'\n    elif ride['fare'] < promo['min_fare']:\n        reason = 'min_fare'\n    disc = 0\n    if reason is None:\n        if promo['kind'] == 'pct':\n            disc = ride['fare'] * promo['value'] // 100\n            if promo['cap'] is not None:\n                disc = min(disc, promo['cap'])\n        else:\n            disc = min(promo['value'], ride['fare'])\n    credit = min(ride['credits'], ride['fare'] - disc)\n    return {'discount': disc, 'credit_used': credit, 'due': ride['fare'] - disc - credit, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: expiry day inclusive',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 50, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 5000, 'fare': 3315, 'rider_rides': 1}, 100],\n   {'credit_used': 3315, 'discount': 0, 'due': 0, 'reason': 'not_first'}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 3279, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 3279, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 5000, 'fare': 700, 'rider_rides': 1}, 101],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 1}, 101],\n   {'credit_used': 2400, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'exhausted'}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 3865, 'rider_rides': 5}, 101],\n   {'credit_used': 3865, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 3055, 'rider_rides': 0}, 100],\n   {'credit_used': 555, 'discount': 2500, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 250, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 500, 'due': 1900, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 1318, 'rider_rides': 0}, 101],\n   {'credit_used': 1318, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 525, 'discount': 525, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 1}, 99],\n   {'credit_used': 1200, 'discount': 1200, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 240, 'due': 2160, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'})]]\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":"5cc6df6324ff758315c8f08d7200c61e7caa79b41ef24ad1546351f336a535dc","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(promo, ride, now_day):\n    reason = None\n    if now_day > promo['expires_day']:\n        reason = 'expired'\n    elif promo['uses_left'] <= 0:\n        reason = 'exhausted'\n    elif promo['first_ride_only'] and ride['rider_rides'] > 0:\n        reason = 'not_first'\n    elif ride['fare'] < promo['min_fare']:\n        reason = 'min_fare'\n    disc = 0\n    if reason is None:\n        if promo['kind'] == 'pct':\n            disc = ride['fare'] * promo['value'] // 100\n            if promo['cap'] is not None:\n                disc = min(disc, promo['cap'])\n        else:\n            disc = min(promo['value'], ride['fare'])\n    credit = min(ride['credits'], ride['fare'] - disc)\n    return {'discount': disc, 'credit_used': credit, 'due': ride['fare'] - disc - credit, 'reason': reason}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: expiry day inclusive',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 50, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 5000, 'fare': 3315, 'rider_rides': 1}, 100],\n   {'credit_used': 3315, 'discount': 0, 'due': 0, 'reason': 'not_first'}),\n  ('normal control 1',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 3279, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 3279, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 5000, 'fare': 700, 'rider_rides': 1}, 101],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 1}, 101],\n   {'credit_used': 2400, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'exhausted'}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'exhausted'}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 2500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 5000, 'fare': 3865, 'rider_rides': 5}, 101],\n   {'credit_used': 3865, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 5000, 'fare': 3055, 'rider_rides': 0}, 100],\n   {'credit_used': 555, 'discount': 2500, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 1099, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 250, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 2400, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 0, 'fare': 700, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('second regression',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 500, 'due': 1900, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 1318, 'rider_rides': 0}, 101],\n   {'credit_used': 1318, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'})],\n [('regression: expiry day inclusive',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 525, 'discount': 525, 'due': 0, 'reason': None}),\n  ('partial repair probe: expiry day inclusive',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 1}, 99],\n   {'credit_used': 1200, 'discount': 1200, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 240, 'due': 2160, 'reason': None}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 500},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 0,\n     'value': 2500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'expired'}),\n  ('normal control 4',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'})]]\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 deterministic toy pricing contract stipulated for this example; it does not reproduce the pricing of any real ride-hailing operator or regulator. 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-ride-hailing-fare-surge-promo-and-credits-expiry-day-inclusive","generated_at":"2026-09-29T14:50:41.791732+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Ride-hailing prices are computed per trip at scale; ordering, unit and boundary slips become systematic over- or under-charging.","repair":"Expire only after the expiry day.","root_cause":"The expiry test uses >=.","sha256":"915dd5e145d9c2147e62d98d8395eba29b4c534fd8a10ed828818ec164fce84c","title":"Promo rejected on its expiry day · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.163,"exit_code":1,"observations":[{"actual":{"credit_used":1050,"discount":0,"due":0,"reason":"expired"},"check":"regression: expiry day inclusive","expected":{"credit_used":50,"discount":1000,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":0,"due":1050,"reason":"expired"},"check":"partial repair probe: expiry day inclusive","expected":{"credit_used":0,"discount":0,"due":1050,"reason":"exhausted"},"passed":false},{"actual":{"credit_used":3315,"discount":0,"due":0,"reason":"expired"},"check":"second regression","expected":{"credit_used":3315,"discount":0,"due":0,"reason":"not_first"},"passed":false},{"actual":{"credit_used":0,"discount":0,"due":3279,"reason":"expired"},"check":"normal control 1","expected":{"credit_used":0,"discount":0,"due":3279,"reason":"expired"},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"check":"normal control 2","expected":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"check":"normal control 3","expected":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":2400,"discount":0,"due":0,"reason":"expired"},"check":"normal control 4","expected":{"credit_used":2400,"discount":0,"due":0,"reason":"expired"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: expiry day inclusive\", \"actual\": {\"discount\": 0, \"credit_used\": 1050, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 50, \"discount\": 1000, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: expiry day inclusive\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1050, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1050, \"reason\": \"exhausted\"}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 0, \"credit_used\": 3315, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 3315, \"discount\": 0, \"due\": 0, \"reason\": \"not_first\"}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 3279, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 3279, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 2400, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 2400, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.132,"exit_code":1,"observations":[{"actual":{"credit_used":1050,"discount":0,"due":0,"reason":"expired"},"check":"regression: expiry day inclusive","expected":{"credit_used":50,"discount":1000,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":0,"due":1050,"reason":"expired"},"check":"partial repair probe: expiry day inclusive","expected":{"credit_used":0,"discount":0,"due":1050,"reason":"exhausted"},"passed":false},{"actual":{"credit_used":3315,"discount":0,"due":0,"reason":"expired"},"check":"second regression","expected":{"credit_used":3315,"discount":0,"due":0,"reason":"not_first"},"passed":false},{"actual":{"credit_used":0,"discount":0,"due":3279,"reason":"expired"},"check":"normal control 1","expected":{"credit_used":0,"discount":0,"due":3279,"reason":"expired"},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"check":"normal control 2","expected":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"check":"normal control 3","expected":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":2400,"discount":0,"due":0,"reason":"expired"},"check":"normal control 4","expected":{"credit_used":2400,"discount":0,"due":0,"reason":"expired"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: expiry day inclusive\", \"actual\": {\"discount\": 0, \"credit_used\": 1050, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 50, \"discount\": 1000, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: expiry day inclusive\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1050, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1050, \"reason\": \"exhausted\"}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 0, \"credit_used\": 3315, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 3315, \"discount\": 0, \"due\": 0, \"reason\": \"not_first\"}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 3279, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 3279, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 2400, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 2400, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.289,"exit_code":0,"observations":[{"actual":{"credit_used":50,"discount":1000,"due":0,"reason":null},"check":"regression: expiry day inclusive","expected":{"credit_used":50,"discount":1000,"due":0,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1050,"reason":"exhausted"},"check":"partial repair probe: expiry day inclusive","expected":{"credit_used":0,"discount":0,"due":1050,"reason":"exhausted"},"passed":true},{"actual":{"credit_used":3315,"discount":0,"due":0,"reason":"not_first"},"check":"second regression","expected":{"credit_used":3315,"discount":0,"due":0,"reason":"not_first"},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":3279,"reason":"expired"},"check":"normal control 1","expected":{"credit_used":0,"discount":0,"due":3279,"reason":"expired"},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"check":"normal control 2","expected":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"check":"normal control 3","expected":{"credit_used":700,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":2400,"discount":0,"due":0,"reason":"expired"},"check":"normal control 4","expected":{"credit_used":2400,"discount":0,"due":0,"reason":"expired"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: expiry day inclusive\", \"actual\": {\"discount\": 1000, \"credit_used\": 50, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 50, \"discount\": 1000, \"due\": 0, \"reason\": null}, \"passed\": true}, {\"check\": \"partial repair probe: expiry day inclusive\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1050, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1050, \"reason\": \"exhausted\"}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"discount\": 0, \"credit_used\": 3315, \"due\": 0, \"reason\": \"not_first\"}, \"expected\": {\"credit_used\": 3315, \"discount\": 0, \"due\": 0, \"reason\": \"not_first\"}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 3279, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 3279, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 2400, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 2400, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}