{"abstract":"A paused campaign with cap 0 still gives full percentage discounts.","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.","contract_signature":"promo, ride, now_day","evaluation_group":"w2-ride-hailing-fare-surge-promo-and-credits","failed_approach":"Explicitly excluding zero caps repeats the same bypass.","family":"w2-ride-hailing-fare-surge-promo-and-credits-explicit-zero-cap","id":"FA-85591","implementations":{"attempt":{"sha256":"da99d5bd756ae08afec1d2d9459625606ba8b70bb598c790689b1c9c6e29d06d","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 and promo['cap'] > 0:\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: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\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': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': None}),\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': 1,\n     'value': 25},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\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': 250, 'fare': 3216, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 800, 'due': 2166, 'reason': None}),\n  ('normal control 2',\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': 10},\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': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'exhausted'}),\n  ('normal control 4',\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': 1000},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 2400, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': None}),\n  ('normal control 1',\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': 500},\n    {'credits': 250, 'fare': 1467, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 717, 'reason': None}),\n  ('normal control 2',\n   [{'cap': None,\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': 2400, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 0, 'fare': 2260, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 226, 'due': 2034, 'reason': None}),\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': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\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': 0, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': None}),\n  ('normal control 1',\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': 500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'exhausted'}),\n  ('normal control 2',\n   [{'cap': 300,\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': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'exhausted'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 250, 'fare': 626, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 376, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 5000, 'fare': 3687, 'rider_rides': 0}, 100],\n   {'credit_used': 3687, 'discount': 0, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\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': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\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': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 900, 'discount': 100, 'due': 0, 'reason': None}),\n  ('normal control 2',\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': 0, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'expired'}),\n  ('normal control 3',\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': 250, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'expired'}),\n  ('normal control 4',\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': 25},\n    {'credits': 0, 'fare': 1394, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1394, 'reason': 'exhausted'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 0, 'fare': 3621, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 3621, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\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': 1}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': None}),\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': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 2',\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': 1000},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 99],\n   {'credit_used': 99, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 3',\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': 250, 'fare': 1050, 'rider_rides': 1}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 800, 'reason': 'exhausted'}),\n  ('normal control 4',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 2400, '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":"50a4f0d22305d7550051c3e55842ebb00c3cd995c05627798df46b610a1d5f47","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']:\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: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 5}, 99],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\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': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 1000, 'discount': 0, 'due': 0, 'reason': None}),\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': 1,\n     'value': 25},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 800,\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': 250, 'fare': 3216, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 800, 'due': 2166, 'reason': None}),\n  ('normal control 2',\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': 10},\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': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'exhausted'}),\n  ('normal control 4',\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': 1000},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 2400, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 3,\n     'value': 25},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 250, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 750, 'reason': None}),\n  ('normal control 1',\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': 500},\n    {'credits': 250, 'fare': 1467, 'rider_rides': 5}, 100],\n   {'credit_used': 250, 'discount': 500, 'due': 717, 'reason': None}),\n  ('normal control 2',\n   [{'cap': None,\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': 2400, 'rider_rides': 1}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 800,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 1,\n     'value': 10},\n    {'credits': 0, 'fare': 2260, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 226, 'due': 2034, 'reason': None}),\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': 0,\n     'value': 2500},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 5}, 101],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': 'expired'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\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': 0, 'fare': 1050, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1050, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 0, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1000, 'reason': None}),\n  ('normal control 1',\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': 500},\n    {'credits': 0, 'fare': 2400, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 2400, 'reason': 'exhausted'}),\n  ('normal control 2',\n   [{'cap': 300,\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': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'exhausted'}),\n  ('normal control 3',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'flat',\n     'min_fare': 1050,\n     'uses_left': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 4',\n   [{'cap': 300,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 0,\n     'value': 50},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 100],\n   {'credit_used': 1099, 'discount': 0, 'due': 0, 'reason': 'exhausted'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 250, 'fare': 626, 'rider_rides': 0}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 376, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 1050,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 5000, 'fare': 3687, 'rider_rides': 0}, 100],\n   {'credit_used': 3687, 'discount': 0, 'due': 0, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\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': 1099, 'rider_rides': 1}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': None}),\n  ('normal control 1',\n   [{'cap': 300,\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': 5000, 'fare': 1000, 'rider_rides': 0}, 100],\n   {'credit_used': 900, 'discount': 100, 'due': 0, 'reason': None}),\n  ('normal control 2',\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': 0, 'fare': 700, 'rider_rides': 5}, 101],\n   {'credit_used': 0, 'discount': 0, 'due': 700, 'reason': 'expired'}),\n  ('normal control 3',\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': 250, 'fare': 1099, 'rider_rides': 0}, 101],\n   {'credit_used': 250, 'discount': 0, 'due': 849, 'reason': 'expired'}),\n  ('normal control 4',\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': 25},\n    {'credits': 0, 'fare': 1394, 'rider_rides': 0}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1394, 'reason': 'exhausted'})],\n [('regression: explicit zero cap',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': True,\n     'kind': 'pct',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 50},\n    {'credits': 0, 'fare': 3621, 'rider_rides': 0}, 99],\n   {'credit_used': 0, 'discount': 0, 'due': 3621, 'reason': None}),\n  ('partial repair probe: explicit zero cap',\n   [{'cap': 0,\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': 1}, 100],\n   {'credit_used': 250, 'discount': 0, 'due': 2150, 'reason': None}),\n  ('second regression',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'pct',\n     'min_fare': 0,\n     'uses_left': 1,\n     'value': 25},\n    {'credits': 5000, 'fare': 1050, 'rider_rides': 1}, 100],\n   {'credit_used': 1050, 'discount': 0, 'due': 0, 'reason': None}),\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': 0,\n     'value': 1000},\n    {'credits': 0, 'fare': 1099, 'rider_rides': 5}, 100],\n   {'credit_used': 0, 'discount': 0, 'due': 1099, 'reason': 'exhausted'}),\n  ('normal control 2',\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': 1000},\n    {'credits': 5000, 'fare': 1099, 'rider_rides': 0}, 99],\n   {'credit_used': 99, 'discount': 1000, 'due': 0, 'reason': None}),\n  ('normal control 3',\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': 250, 'fare': 1050, 'rider_rides': 1}, 99],\n   {'credit_used': 250, 'discount': 0, 'due': 800, 'reason': 'exhausted'}),\n  ('normal control 4',\n   [{'cap': 0,\n     'expires_day': 100,\n     'first_ride_only': False,\n     'kind': 'flat',\n     'min_fare': 1000,\n     'uses_left': 3,\n     'value': 1000},\n    {'credits': 5000, 'fare': 2400, 'rider_rides': 0}, 101],\n   {'credit_used': 2400, '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-explicit-zero-cap","generated_at":"2026-09-29T14:50:41.797250+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.","root_cause":"The cap guard uses truthiness, skipping a cap of 0.","sha256":"63c33ee771bd3d238b4ee41e1b712bd3cbab62b57f549ec07c190eb1311f075a","title":"Zero cap treated as uncapped · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":39.529,"exit_code":1,"observations":[{"actual":{"credit_used":825,"discount":274,"due":0,"reason":null},"check":"regression: explicit zero cap","expected":{"credit_used":1099,"discount":0,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":900,"discount":100,"due":0,"reason":null},"check":"partial repair probe: explicit zero cap","expected":{"credit_used":1000,"discount":0,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":274,"due":825,"reason":null},"check":"second regression","expected":{"credit_used":0,"discount":0,"due":1099,"reason":null},"passed":false},{"actual":{"credit_used":250,"discount":800,"due":2166,"reason":null},"check":"normal control 1","expected":{"credit_used":250,"discount":800,"due":2166,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":2400,"reason":"expired"},"check":"normal control 2","expected":{"credit_used":0,"discount":0,"due":2400,"reason":"expired"},"passed":true},{"actual":{"credit_used":1099,"discount":0,"due":0,"reason":"exhausted"},"check":"normal control 3","expected":{"credit_used":1099,"discount":0,"due":0,"reason":"exhausted"},"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: explicit zero cap\", \"actual\": {\"discount\": 274, \"credit_used\": 825, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 1099, \"discount\": 0, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: explicit zero cap\", \"actual\": {\"discount\": 100, \"credit_used\": 900, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 1000, \"discount\": 0, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 274, \"credit_used\": 0, \"due\": 825, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1099, \"reason\": null}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 800, \"credit_used\": 250, \"due\": 2166, \"reason\": null}, \"expected\": {\"credit_used\": 250, \"discount\": 800, \"due\": 2166, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 2400, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 2400, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 1099, \"due\": 0, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 1099, \"discount\": 0, \"due\": 0, \"reason\": \"exhausted\"}, \"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.293,"exit_code":1,"observations":[{"actual":{"credit_used":825,"discount":274,"due":0,"reason":null},"check":"regression: explicit zero cap","expected":{"credit_used":1099,"discount":0,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":900,"discount":100,"due":0,"reason":null},"check":"partial repair probe: explicit zero cap","expected":{"credit_used":1000,"discount":0,"due":0,"reason":null},"passed":false},{"actual":{"credit_used":0,"discount":274,"due":825,"reason":null},"check":"second regression","expected":{"credit_used":0,"discount":0,"due":1099,"reason":null},"passed":false},{"actual":{"credit_used":250,"discount":800,"due":2166,"reason":null},"check":"normal control 1","expected":{"credit_used":250,"discount":800,"due":2166,"reason":null},"passed":true},{"actual":{"credit_used":0,"discount":0,"due":2400,"reason":"expired"},"check":"normal control 2","expected":{"credit_used":0,"discount":0,"due":2400,"reason":"expired"},"passed":true},{"actual":{"credit_used":1099,"discount":0,"due":0,"reason":"exhausted"},"check":"normal control 3","expected":{"credit_used":1099,"discount":0,"due":0,"reason":"exhausted"},"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: explicit zero cap\", \"actual\": {\"discount\": 274, \"credit_used\": 825, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 1099, \"discount\": 0, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"partial repair probe: explicit zero cap\", \"actual\": {\"discount\": 100, \"credit_used\": 900, \"due\": 0, \"reason\": null}, \"expected\": {\"credit_used\": 1000, \"discount\": 0, \"due\": 0, \"reason\": null}, \"passed\": false}, {\"check\": \"second regression\", \"actual\": {\"discount\": 274, \"credit_used\": 0, \"due\": 825, \"reason\": null}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 1099, \"reason\": null}, \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": {\"discount\": 800, \"credit_used\": 250, \"due\": 2166, \"reason\": null}, \"expected\": {\"credit_used\": 250, \"discount\": 800, \"due\": 2166, \"reason\": null}, \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": {\"discount\": 0, \"credit_used\": 0, \"due\": 2400, \"reason\": \"expired\"}, \"expected\": {\"credit_used\": 0, \"discount\": 0, \"due\": 2400, \"reason\": \"expired\"}, \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": {\"discount\": 0, \"credit_used\": 1099, \"due\": 0, \"reason\": \"exhausted\"}, \"expected\": {\"credit_used\": 1099, \"discount\": 0, \"due\": 0, \"reason\": \"exhausted\"}, \"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"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}