{"abstract":"Trips to the airport are charged the higher pickup fee.","category":"Ride-hailing fare and surge pricing","checks":7,"contract":"Zone names are case-insensitive (normalized upper case). A flat fare table keyed \"A|B\" applies in both directions; a flat fare (0 is a valid promotional flat) is never surged. Otherwise the metered fare is surged (tenths, half up). Airport fees apply separately: the pickup fee of the pickup zone and the dropoff fee of the dropoff zone. Tolls are added last. Return [fare, flat|metered].","evaluation_group":"w2-ride-hailing-fare-surge-flat-zone-fares","failed_approach":"Omitting the dropoff fee entirely under-charges airport dropoffs.","family":"w2-ride-hailing-fare-surge-flat-zone-fares-airport-fee-sides","id":"FA-85641","implementations":{"attempt":{"sha256":"fb4465e0a527f44940fdcf66286aa7ffb5e64a619f73a3de1eea21a42c9e8d1c","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(table, pickup_zone, drop_zone, metered, tolls, surge, airport_fees):\n    p, d = pickup_zone.upper(), drop_zone.upper()\n    flat = table.get(p + '|' + d, table.get(d + '|' + p))\n    if flat is not None:\n        fare, kind = flat, 'flat'\n    else:\n        fare, kind = (metered * surge * 2 + 10) // 20, 'metered'\n    fare += airport_fees.get(p, {}).get('pickup', 0)\n    return [fare + tolls, kind]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 4387, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 2756, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 5529, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5400, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'MID', 1177, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2854, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 3757, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5636, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'MID', 3578, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4328, 'metered']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'DT', 4097, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [6396, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'air', 3297, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4450, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'AIR', 991, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 4614, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5400, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'UNI', 2643, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2643, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'Dt', 2569, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5000, 'flat']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'DT', 5450, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [0, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'SHUT', 4706, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [10512, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'air', 3585, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [8070, 'metered']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 4123, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 4026, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 4305, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [8860, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'MID', 2606, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5212, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'Dt', 4867, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'SHUT', 4760, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5510, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'air', 4285, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5185, 'metered']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 5437, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 1363, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4450, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 4478, 600, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [7317, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'UNI', 5924, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5000, 'flat']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'DT', 1853, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'MID', 4781, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [7172, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 1974, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'AIR', 1558, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2637, 'metered']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'AIR', 2287, 600, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4831, 'metered']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'Dt', 2942, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'SHUT', 3509, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4009, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'SHUT', 2704, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2704, 'metered']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'DT', 2888, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [0, 'flat'])]]\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":"01d5f1506ac4ee5deee3b44cebf2ede2d5992646b2093ada215c0b803ca551b2","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(table, pickup_zone, drop_zone, metered, tolls, surge, airport_fees):\n    p, d = pickup_zone.upper(), drop_zone.upper()\n    flat = table.get(p + '|' + d, table.get(d + '|' + p))\n    if flat is not None:\n        fare, kind = flat, 'flat'\n    else:\n        fare, kind = (metered * surge * 2 + 10) // 20, 'metered'\n    fare += airport_fees.get(p, {}).get('pickup', 0) + airport_fees.get(d, {}).get('pickup', 0)\n    return [fare + tolls, kind]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 4387, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 2756, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 5529, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5400, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'MID', 1177, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2854, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 3757, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5636, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'MID', 3578, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4328, 'metered']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'DT', 4097, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [6396, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'air', 3297, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4450, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'AIR', 991, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 4614, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5400, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'UNI', 2643, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2643, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'Dt', 2569, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5000, 'flat']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'DT', 5450, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [0, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'SHUT', 4706, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [10512, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'air', 3585, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [8070, 'metered']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 4123, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 4026, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 4305, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [8860, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'MID', 2606, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5212, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'Dt', 4867, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'SHUT', 4760, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5510, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'air', 4285, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5185, 'metered']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 5437, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 1363, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4450, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 4478, 600, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [7317, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'UNI', 5924, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5000, 'flat']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'DT', 1853, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'MID', 4781, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [7172, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 1974, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'AIR', 1558, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2637, 'metered']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'AIR', 2287, 600, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4831, 'metered']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'Dt', 2942, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'SHUT', 3509, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4009, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'SHUT', 2704, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2704, 'metered']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'DT', 2888, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [0, 'flat'])]]\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":"99e3bd0312adb52e0afdaf9a8f9ac348b2d4cdde33bc7ef40f8ca4dee7ecc3f6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(table, pickup_zone, drop_zone, metered, tolls, surge, airport_fees):\n    p, d = pickup_zone.upper(), drop_zone.upper()\n    flat = table.get(p + '|' + d, table.get(d + '|' + p))\n    if flat is not None:\n        fare, kind = flat, 'flat'\n    else:\n        fare, kind = (metered * surge * 2 + 10) // 20, 'metered'\n    fare += airport_fees.get(p, {}).get('pickup', 0) + airport_fees.get(d, {}).get('dropoff', 0)\n    return [fare + tolls, kind]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 4387, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 2756, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 5529, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5400, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'MID', 1177, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2854, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 3757, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5636, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'MID', 3578, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4328, 'metered']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'DT', 4097, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [6396, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'air', 3297, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4450, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'AIR', 991, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 4614, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5400, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'UNI', 2643, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2643, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'Dt', 2569, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5000, 'flat']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'DT', 5450, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [0, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'SHUT', 4706, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [10512, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'air', 3585, 600, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [8070, 'metered']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 4123, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 4026, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4800, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 4305, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [8860, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'MID', 2606, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5212, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'Dt', 4867, 250, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'SHUT', 4760, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5510, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'air', 4285, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5185, 'metered']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'AIR', 5437, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'UNI', 'AIR', 1363, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4450, 'flat']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'DT', 4478, 600, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [7317, 'metered']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'UNI', 5924, 600, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5000, 'flat']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'DT', 1853, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'Dt', 'MID', 4781, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [7172, 'metered'])],\n [('regression: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'DT', 'air', 1974, 250, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5050, 'flat']),\n  ('partial repair probe: airport fee sides',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'AIR', 1558, 0, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2637, 'metered']),\n  ('second regression',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'air', 'AIR', 2287, 600, 15,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4831, 'metered']),\n  ('normal control 1',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'Dt', 2942, 250, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [5250, 'flat']),\n  ('normal control 2',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'AIR', 'SHUT', 3509, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [4009, 'metered']),\n  ('normal control 3',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'MID', 'SHUT', 2704, 0, 10,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [2704, 'metered']),\n  ('normal control 4',\n   [{'AIR|DT': 4500, 'AIR|UNI': 3900, 'DT|SHUT': 0}, 'SHUT', 'DT', 2888, 0, 20,\n    {'AIR': {'dropoff': 300, 'pickup': 500}}],\n   [0, 'flat'])]]\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-flat-zone-fares-airport-fee-sides","generated_at":"2026-09-29T14:50:42.263367+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":"Charge the pickup fee for pickups and the dropoff fee for dropoffs.","root_cause":"The dropoff side reads the pickup fee entry.","sha256":"d3ffc1c88c9499663d923a3b9bd548f7a94c35240a57ba99a953da0d932480db","title":"Airport dropoff charged the pickup fee · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.652,"exit_code":1,"observations":[{"actual":[4750,"flat"],"check":"regression: airport fee sides","expected":[5050,"flat"],"passed":false},{"actual":[4500,"flat"],"check":"partial repair probe: airport fee sides","expected":[4800,"flat"],"passed":false},{"actual":[5100,"flat"],"check":"second regression","expected":[5400,"flat"],"passed":false},{"actual":[2854,"metered"],"check":"normal control 1","expected":[2854,"metered"],"passed":true},{"actual":[5636,"metered"],"check":"normal control 2","expected":[5636,"metered"],"passed":true},{"actual":[4328,"metered"],"check":"normal control 3","expected":[4328,"metered"],"passed":true},{"actual":[6396,"metered"],"check":"normal control 4","expected":[6396,"metered"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: airport fee sides\", \"actual\": [4750, \"flat\"], \"expected\": [5050, \"flat\"], \"passed\": false}, {\"check\": \"partial repair probe: airport fee sides\", \"actual\": [4500, \"flat\"], \"expected\": [4800, \"flat\"], \"passed\": false}, {\"check\": \"second regression\", \"actual\": [5100, \"flat\"], \"expected\": [5400, \"flat\"], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [2854, \"metered\"], \"expected\": [2854, \"metered\"], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [5636, \"metered\"], \"expected\": [5636, \"metered\"], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [4328, \"metered\"], \"expected\": [4328, \"metered\"], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [6396, \"metered\"], \"expected\": [6396, \"metered\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.073,"exit_code":1,"observations":[{"actual":[5250,"flat"],"check":"regression: airport fee sides","expected":[5050,"flat"],"passed":false},{"actual":[5000,"flat"],"check":"partial repair probe: airport fee sides","expected":[4800,"flat"],"passed":false},{"actual":[5600,"flat"],"check":"second regression","expected":[5400,"flat"],"passed":false},{"actual":[2854,"metered"],"check":"normal control 1","expected":[2854,"metered"],"passed":true},{"actual":[5636,"metered"],"check":"normal control 2","expected":[5636,"metered"],"passed":true},{"actual":[4328,"metered"],"check":"normal control 3","expected":[4328,"metered"],"passed":true},{"actual":[6396,"metered"],"check":"normal control 4","expected":[6396,"metered"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: airport fee sides\", \"actual\": [5250, \"flat\"], \"expected\": [5050, \"flat\"], \"passed\": false}, {\"check\": \"partial repair probe: airport fee sides\", \"actual\": [5000, \"flat\"], \"expected\": [4800, \"flat\"], \"passed\": false}, {\"check\": \"second regression\", \"actual\": [5600, \"flat\"], \"expected\": [5400, \"flat\"], \"passed\": false}, {\"check\": \"normal control 1\", \"actual\": [2854, \"metered\"], \"expected\": [2854, \"metered\"], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [5636, \"metered\"], \"expected\": [5636, \"metered\"], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [4328, \"metered\"], \"expected\": [4328, \"metered\"], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [6396, \"metered\"], \"expected\": [6396, \"metered\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":37.979,"exit_code":0,"observations":[{"actual":[5050,"flat"],"check":"regression: airport fee sides","expected":[5050,"flat"],"passed":true},{"actual":[4800,"flat"],"check":"partial repair probe: airport fee sides","expected":[4800,"flat"],"passed":true},{"actual":[5400,"flat"],"check":"second regression","expected":[5400,"flat"],"passed":true},{"actual":[2854,"metered"],"check":"normal control 1","expected":[2854,"metered"],"passed":true},{"actual":[5636,"metered"],"check":"normal control 2","expected":[5636,"metered"],"passed":true},{"actual":[4328,"metered"],"check":"normal control 3","expected":[4328,"metered"],"passed":true},{"actual":[6396,"metered"],"check":"normal control 4","expected":[6396,"metered"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: airport fee sides\", \"actual\": [5050, \"flat\"], \"expected\": [5050, \"flat\"], \"passed\": true}, {\"check\": \"partial repair probe: airport fee sides\", \"actual\": [4800, \"flat\"], \"expected\": [4800, \"flat\"], \"passed\": true}, {\"check\": \"second regression\", \"actual\": [5400, \"flat\"], \"expected\": [5400, \"flat\"], \"passed\": true}, {\"check\": \"normal control 1\", \"actual\": [2854, \"metered\"], \"expected\": [2854, \"metered\"], \"passed\": true}, {\"check\": \"normal control 2\", \"actual\": [5636, \"metered\"], \"expected\": [5636, \"metered\"], \"passed\": true}, {\"check\": \"normal control 3\", \"actual\": [4328, \"metered\"], \"expected\": [4328, \"metered\"], \"passed\": true}, {\"check\": \"normal control 4\", \"actual\": [6396, \"metered\"], \"expected\": [6396, \"metered\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}