{"abstract":"A 10.00 ride fails a 10.00 minimum-spend promo.","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 whole dollars accepts fares a few cents below a minimum that is not a whole-dollar amount.","family":"w2-ride-hailing-fare-surge-promo-and-credits-minimum-fare-comparison","id":"FA-85606","implementations":{"attempt":{"sha256":"9aa7ddd6a97c9154e4916f7d22bae76b2cd7caa4178faa90d31f313958b3ab64","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'] // 100 < promo['min_fare'] // 100:\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: minimum fare comparison',\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': 500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 550, 'discount': 500, 'due': 0, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 300,\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': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\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': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\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': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 700, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 500, 'due': 200, 'reason': None}),\n  ('normal control 4',\n   [{'cap': 300,\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': 5000, 'fare': 700, 'rider_rides': 5}, 99],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'min_fare'})],\n [('regression: minimum fare comparison',\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': 25},\n    {'credits': 250, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 262, 'due': 538, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\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': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 5000, 'fare': 2167, 'rider_rides': 0}, 101],\n   {'credit_used': 2167, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 250, 'fare': 2346, 'rider_rides': 5}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 2096, 'reason': 'not_first'}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 549, 'due': 550, 'reason': None})],\n [('regression: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 100, 'due': 650, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\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': 250, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 105, 'due': 695, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 349, 'reason': None}),\n  ('normal control 2',\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': 50},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'expired'}),\n  ('normal control 3',\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': 250, 'fare': 2400, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 240, 'due': 1910, 'reason': None}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'exhausted'})],\n [('regression: minimum fare comparison',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 500, 'discount': 500, 'due': 0, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'min_fare'}),\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': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('normal control 1',\n   [{'cap': 800,\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': 5000, 'fare': 1933, 'rider_rides': 0}, 101],\n   {'credit_used': 1933, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 1400, 'reason': None}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'})],\n [('regression: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 500, 'due': 500, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 99],\n   {'credit_used': 900, 'discount': 100, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 700, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('normal control 2',\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': 10},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('normal control 4',\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': 2500},\n    {'credits': 250, 'fare': 700, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, '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":"7031d9a6f03beb55e356e47cdd2aec6f97b49abcd9d5827c3b51ca69b91dde9f","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: minimum fare comparison',\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': 500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 550, 'discount': 500, 'due': 0, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 300,\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': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\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': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\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': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 700, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 500, 'due': 200, 'reason': None}),\n  ('normal control 4',\n   [{'cap': 300,\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': 5000, 'fare': 700, 'rider_rides': 5}, 99],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'min_fare'})],\n [('regression: minimum fare comparison',\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': 25},\n    {'credits': 250, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 262, 'due': 538, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\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': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 5000, 'fare': 2167, 'rider_rides': 0}, 101],\n   {'credit_used': 2167, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 250, 'fare': 2346, 'rider_rides': 5}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 2096, 'reason': 'not_first'}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 549, 'due': 550, 'reason': None})],\n [('regression: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 100, 'due': 650, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\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': 250, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 105, 'due': 695, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 349, 'reason': None}),\n  ('normal control 2',\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': 50},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'expired'}),\n  ('normal control 3',\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': 250, 'fare': 2400, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 240, 'due': 1910, 'reason': None}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'exhausted'})],\n [('regression: minimum fare comparison',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 500, 'discount': 500, 'due': 0, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'min_fare'}),\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': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('normal control 1',\n   [{'cap': 800,\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': 5000, 'fare': 1933, 'rider_rides': 0}, 101],\n   {'credit_used': 1933, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 1400, 'reason': None}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'})],\n [('regression: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 500, 'due': 500, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 99],\n   {'credit_used': 900, 'discount': 100, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 700, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('normal control 2',\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': 10},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('normal control 4',\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': 2500},\n    {'credits': 250, 'fare': 700, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, '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":"3f524b2800da2cc4876259fd981ae84c985e182770437c05cc1f6a83e09aca4a","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: minimum fare comparison',\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': 500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 550, 'discount': 500, 'due': 0, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 300,\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': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\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': 1000, 'rider_rides': 1}, 101],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\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': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 700, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 500, 'due': 200, 'reason': None}),\n  ('normal control 4',\n   [{'cap': 300,\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': 5000, 'fare': 700, 'rider_rides': 5}, 99],\n   {'credit_used': 700, 'discount': 0, 'due': 0, 'reason': 'min_fare'})],\n [('regression: minimum fare comparison',\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': 25},\n    {'credits': 250, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 262, 'due': 538, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\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': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('normal control 1',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 2',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 5000, 'fare': 2167, 'rider_rides': 0}, 101],\n   {'credit_used': 2167, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 250, 'fare': 2346, 'rider_rides': 5}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 2096, 'reason': 'not_first'}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 549, 'due': 550, 'reason': None})],\n [('regression: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 100, 'due': 650, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\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': 250, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 105, 'due': 695, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 500},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 349, 'reason': None}),\n  ('normal control 2',\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': 50},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'expired'}),\n  ('normal control 3',\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': 250, 'fare': 2400, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 240, 'due': 1910, 'reason': None}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'exhausted'})],\n [('regression: minimum fare comparison',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 500, 'discount': 500, 'due': 0, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 0}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': 'min_fare'}),\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': 1000, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': 'min_fare'}),\n  ('normal control 1',\n   [{'cap': 800,\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': 5000, 'fare': 1933, 'rider_rides': 0}, 101],\n   {'credit_used': 1933, 'discount': 0, 'due': 0, 'reason': 'expired'}),\n  ('normal control 2',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 500},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 1000, 'due': 1400, 'reason': None}),\n  ('normal control 4',\n   [{'cap': None,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 0, 'fare': 1050, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': 'exhausted'})],\n [('regression: minimum fare comparison',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 50},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 500, 'due': 500, 'reason': None}),\n  ('partial repair probe: minimum fare comparison',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': 'min_fare'}),\n  ('second regression',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 10},\n    {'credits': 5000, 'fare': 1000, 'rider_rides': 1}, 99],\n   {'credit_used': 900, 'discount': 100, 'due': 0, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 10},\n    {'credits': 0, 'fare': 700, 'rider_rides': 5}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'exhausted'}),\n  ('normal control 2',\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': 10},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'expired'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 25},\n    {'credits': 250, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'exhausted'}),\n  ('normal control 4',\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': 2500},\n    {'credits': 250, 'fare': 700, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 450, '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-minimum-fare-comparison","generated_at":"2026-09-29T14:50:41.882261+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":"Reject only fares strictly below the minimum.","root_cause":"The minimum-fare check uses <=.","sha256":"36be8940ecb5d229f38c951aec862e8ebeaf5a1a371310a66db29a82e5fa6c79","title":"Fare exactly at the promo minimum rejected · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.169,"exit_code":1,"observations":[{"actual":{"credit_used":550,"discount":500,"due":0,"reason":null},"check":"regression: minimum fare comparison","expected":{"credit_used":550,"discount":500,"due":0,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":500,"due":500,"reason":null},"check":"partial repair probe: minimum fare comparison","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"passed":false},{"actual":{"credit_used":0,"discount":1000,"due":0,"reason":null},"check":"second regression","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"passed":false},{"actual":{"credit_used":1000,"discount":0,"due":0,"reason":"expired"},"check":"normal control 1","expected":{"credit_used":1000,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":250,"discount":0,"due":849,"reason":"exhausted"},"check":"normal control 2","expected":{"credit_used":250,"discount":0,"due":849,"reason":"exhausted"},"passed":true},{"actual":{"credit_used":0,"discount":500,"due":200,"reason":null},"check":"normal control 3","expected":{"credit_used":0,"discount":500,"due":200,"reason":null},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"min_fare"},"check":"normal control 4","expected":{"credit_used":700,"discount":0,"due":0,"reason":"min_fare"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: minimum fare comparison\", \"actual\": {\"discount\": 500, \"credit_used\": 550, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 550, \"discount\": 500, \"due\": 0, \"reason\": null}, \"passed\": true}, {\"check\": \"partial repair probe: minimum fare comparison\", \"actual\": {\"discount\": 500, \"credit_used\": 0, \"due\": 500, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 1000, \"credit_used\": 0, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 0, \"credit_used\": 1000, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 1000, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 250, \"due\": 849, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 250, \"discount\": 0, \"due\": 849, \"reason\": \"exhausted\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 500, \"credit_used\": 0, \"due\": 200, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 500, \"due\": 200, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"min_fare\"}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.261,"exit_code":1,"observations":[{"actual":{"credit_used":1050,"discount":0,"due":0,"reason":"min_fare"},"check":"regression: minimum fare comparison","expected":{"credit_used":550,"discount":500,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"check":"partial repair probe: minimum fare comparison","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"check":"second regression","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"passed":true},{"actual":{"credit_used":1000,"discount":0,"due":0,"reason":"expired"},"check":"normal control 1","expected":{"credit_used":1000,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":250,"discount":0,"due":849,"reason":"exhausted"},"check":"normal control 2","expected":{"credit_used":250,"discount":0,"due":849,"reason":"exhausted"},"passed":true},{"actual":{"credit_used":0,"discount":500,"due":200,"reason":null},"check":"normal control 3","expected":{"credit_used":0,"discount":500,"due":200,"reason":null},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"min_fare"},"check":"normal control 4","expected":{"credit_used":700,"discount":0,"due":0,"reason":"min_fare"},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: minimum fare comparison\", \"actual\": {\"discount\": 0, \"credit_used\": 1050, \"due\": 0, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 550, \"discount\": 500, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: minimum fare comparison\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 0, \"credit_used\": 1000, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 1000, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 250, \"due\": 849, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 250, \"discount\": 0, \"due\": 849, \"reason\": \"exhausted\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 500, \"credit_used\": 0, \"due\": 200, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 500, \"due\": 200, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"min_fare\"}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.992,"exit_code":0,"observations":[{"actual":{"credit_used":550,"discount":500,"due":0,"reason":null},"check":"regression: minimum fare comparison","expected":{"credit_used":550,"discount":500,"due":0,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"check":"partial repair probe: minimum fare comparison","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"check":"second regression","expected":{"credit_used":0,"discount":0,"due":1000,"reason":"min_fare"},"passed":true},{"actual":{"credit_used":1000,"discount":0,"due":0,"reason":"expired"},"check":"normal control 1","expected":{"credit_used":1000,"discount":0,"due":0,"reason":"expired"},"passed":true},{"actual":{"credit_used":250,"discount":0,"due":849,"reason":"exhausted"},"check":"normal control 2","expected":{"credit_used":250,"discount":0,"due":849,"reason":"exhausted"},"passed":true},{"actual":{"credit_used":0,"discount":500,"due":200,"reason":null},"check":"normal control 3","expected":{"credit_used":0,"discount":500,"due":200,"reason":null},"passed":true},{"actual":{"credit_used":700,"discount":0,"due":0,"reason":"min_fare"},"check":"normal control 4","expected":{"credit_used":700,"discount":0,"due":0,"reason":"min_fare"},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: minimum fare comparison\", \"actual\": {\"discount\": 500, \"credit_used\": 550, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 550, \"discount\": 500, \"due\": 0, \"reason\": null}, \"passed\": true}, {\"check\": \"partial repair probe: minimum fare comparison\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"passed\": true}, {\"check\": \"second regression\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1000, \"reason\": \"min_fare\"}, \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 0, \"credit_used\": 1000, \"due\": 0, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 1000, \"discount\": 0, \"due\": 0, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 250, \"due\": 849, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 250, \"discount\": 0, \"due\": 849, \"reason\": \"exhausted\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 500, \"credit_used\": 0, \"due\": 200, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 500, \"due\": 200, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": {\"discount\": 0, \"credit_used\": 700, \"due\": 0, \"reason\": \"min_fare\"}, \"expected\": {\"credit_used\": 700, \"discount\": 0, \"due\": 0, \"reason\": \"min_fare\"}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}