{"abstract":"EV charging session and idle fee returns a wrong result when idle time is measured from plug-in.","category":"Toll and parking fee computation","checks":8,"contract":"Input {plug_in, charge_end, unplug (minutes), wh, price_per_kwh, idle_grace, idle_rate (per started 10 min), idle_cap, session_fee, min_fee}. Energy = ceil(wh*price/1000). Idle minutes = max(0, unplug - charge_end - grace); idle fee = min(idle_cap, started 10-minute blocks * idle_rate). Total = max(min_fee, session_fee + energy + idle). Return {energy, idle, total}.","evaluation_group":"w2-toll_and_parking_fee_computation-ev-idle-fee","failed_approach":"Assuming a minimum one-hour charging window forgives idle time after short charges.","family":"w2-toll_and_parking_fee_computation-ev-idle-fee-idle-start","id":"FA-68696","implementations":{"attempt":{"sha256":"cab46b991d1d0749494afdfeb0c5e2daa64aca6f27e487ea7635875344219238","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    energy = -(-x['wh'] * x['price_per_kwh'] // 1000)\n    idle = max(0, x['unplug'] - max(x['charge_end'], x['plug_in'] + 60) - x['idle_grace'])\n    idle_fee = min(x['idle_cap'], -(-idle // 10) * x['idle_rate'])\n    total = x['session_fee'] + energy + idle_fee\n    return {'energy': energy, 'idle': idle_fee, 'total': max(x['min_fee'], total)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[({'plug_in': 198, 'charge_end': 364, 'unplug': 379, 'wh': 11108, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 500, 'idle': 50, 'total': 550}), ({'plug_in': 83, 'charge_end': 221, 'unplug': 221, 'wh': 32363, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 939, 'idle': 0, 'total': 1089}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 463, 'charge_end': 667, 'unplug': 1067, 'wh': 38632, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 1353, 'idle': 2000, 'total': 3503}), ({'plug_in': 300, 'charge_end': 327, 'unplug': 352, 'wh': 2749, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 124, 'idle': 100, 'total': 300}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 571, 'charge_end': 611, 'unplug': 671, 'wh': 58013, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 2031, 'idle': 500, 'total': 2681}), ({'plug_in': 585, 'charge_end': 651, 'unplug': 1051, 'wh': 11487, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 517, 'idle': 2000, 'total': 2617})], [({'plug_in': 276, 'charge_end': 449, 'unplug': 849, 'wh': 11301, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 588, 'idle': 1000, 'total': 1738}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 55, 'charge_end': 192, 'unplug': 592, 'wh': 56671, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 2551, 'idle': 2000, 'total': 4701}), ({'plug_in': 119, 'charge_end': 141, 'unplug': 166, 'wh': 50337, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1460, 'idle': 100, 'total': 1710}), ({'plug_in': 133, 'charge_end': 348, 'unplug': 364, 'wh': 39429, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1381, 'idle': 40, 'total': 1521}), ({'plug_in': 367, 'charge_end': 452, 'unplug': 457, 'wh': 33621, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 200}, {'energy': 1177, 'idle': 0, 'total': 1327}), ({'plug_in': 86, 'charge_end': 100, 'unplug': 500, 'wh': 33981, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 986, 'idle': 1560, 'total': 2646})], [({'plug_in': 484, 'charge_end': 691, 'unplug': 696, 'wh': 43716, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1531, 'idle': 0, 'total': 1531}), ({'plug_in': 94, 'charge_end': 104, 'unplug': 504, 'wh': 29791, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1043, 'idle': 1560, 'total': 2603}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 298, 'charge_end': 412, 'unplug': 422, 'wh': 44300, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1285, 'idle': 0, 'total': 1435}), ({'plug_in': 490, 'charge_end': 604, 'unplug': 1004, 'wh': 19203, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 673, 'idle': 1000, 'total': 1773}), ({'plug_in': 35, 'charge_end': 237, 'unplug': 637, 'wh': 21103, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 612, 'idle': 2000, 'total': 2762}), ({'plug_in': 435, 'charge_end': 452, 'unplug': 477, 'wh': 8379, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 436, 'idle': 50, 'total': 586}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588})], [({'plug_in': 196, 'charge_end': 237, 'unplug': 437, 'wh': 1583, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 500}, {'energy': 56, 'idle': 760, 'total': 916}), ({'plug_in': 189, 'charge_end': 408, 'unplug': 608, 'wh': 14406, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 649, 'idle': 1000, 'total': 1799}), ({'plug_in': 485, 'charge_end': 673, 'unplug': 678, 'wh': 49217, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1723, 'idle': 0, 'total': 1823}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 579, 'charge_end': 616, 'unplug': 816, 'wh': 38092, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1105, 'idle': 760, 'total': 1865}), ({'plug_in': 434, 'charge_end': 669, 'unplug': 1069, 'wh': 52657, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1528, 'idle': 1000, 'total': 2528}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 423, 'charge_end': 679, 'unplug': 879, 'wh': 7379, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 200}, {'energy': 214, 'idle': 1900, 'total': 2114})], [({'plug_in': 443, 'charge_end': 636, 'unplug': 1036, 'wh': 37050, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 1668, 'idle': 3000, 'total': 4818}), ({'plug_in': 154, 'charge_end': 307, 'unplug': 367, 'wh': 13001, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 200}, {'energy': 677, 'idle': 500, 'total': 1177}), ({'plug_in': 429, 'charge_end': 659, 'unplug': 1059, 'wh': 6145, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 216, 'idle': 1000, 'total': 1366}), ({'plug_in': 505, 'charge_end': 552, 'unplug': 612, 'wh': 43134, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 200}, {'energy': 1251, 'idle': 200, 'total': 1451}), ({'plug_in': 598, 'charge_end': 637, 'unplug': 653, 'wh': 32840, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 953, 'idle': 50, 'total': 1003}), ({'plug_in': 194, 'charge_end': 420, 'unplug': 480, 'wh': 11163, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 324, 'idle': 250, 'total': 724}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588})]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check('fee oracle' + ' %d' % i, 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":"f35a9de958dddc111e8df3747b9882adb9a960b709f8b7431e19ff1f39cab077","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    energy = -(-x['wh'] * x['price_per_kwh'] // 1000)\n    idle = max(0, x['unplug'] - x['plug_in'] - x['idle_grace'])\n    idle_fee = min(x['idle_cap'], -(-idle // 10) * x['idle_rate'])\n    total = x['session_fee'] + energy + idle_fee\n    return {'energy': energy, 'idle': idle_fee, 'total': max(x['min_fee'], total)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[({'plug_in': 198, 'charge_end': 364, 'unplug': 379, 'wh': 11108, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 500, 'idle': 50, 'total': 550}), ({'plug_in': 83, 'charge_end': 221, 'unplug': 221, 'wh': 32363, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 939, 'idle': 0, 'total': 1089}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 463, 'charge_end': 667, 'unplug': 1067, 'wh': 38632, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 1353, 'idle': 2000, 'total': 3503}), ({'plug_in': 300, 'charge_end': 327, 'unplug': 352, 'wh': 2749, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 124, 'idle': 100, 'total': 300}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 571, 'charge_end': 611, 'unplug': 671, 'wh': 58013, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 2031, 'idle': 500, 'total': 2681}), ({'plug_in': 585, 'charge_end': 651, 'unplug': 1051, 'wh': 11487, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 517, 'idle': 2000, 'total': 2617})], [({'plug_in': 276, 'charge_end': 449, 'unplug': 849, 'wh': 11301, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 588, 'idle': 1000, 'total': 1738}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 55, 'charge_end': 192, 'unplug': 592, 'wh': 56671, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 2551, 'idle': 2000, 'total': 4701}), ({'plug_in': 119, 'charge_end': 141, 'unplug': 166, 'wh': 50337, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1460, 'idle': 100, 'total': 1710}), ({'plug_in': 133, 'charge_end': 348, 'unplug': 364, 'wh': 39429, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1381, 'idle': 40, 'total': 1521}), ({'plug_in': 367, 'charge_end': 452, 'unplug': 457, 'wh': 33621, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 200}, {'energy': 1177, 'idle': 0, 'total': 1327}), ({'plug_in': 86, 'charge_end': 100, 'unplug': 500, 'wh': 33981, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 986, 'idle': 1560, 'total': 2646})], [({'plug_in': 484, 'charge_end': 691, 'unplug': 696, 'wh': 43716, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1531, 'idle': 0, 'total': 1531}), ({'plug_in': 94, 'charge_end': 104, 'unplug': 504, 'wh': 29791, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1043, 'idle': 1560, 'total': 2603}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 298, 'charge_end': 412, 'unplug': 422, 'wh': 44300, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1285, 'idle': 0, 'total': 1435}), ({'plug_in': 490, 'charge_end': 604, 'unplug': 1004, 'wh': 19203, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 673, 'idle': 1000, 'total': 1773}), ({'plug_in': 35, 'charge_end': 237, 'unplug': 637, 'wh': 21103, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 612, 'idle': 2000, 'total': 2762}), ({'plug_in': 435, 'charge_end': 452, 'unplug': 477, 'wh': 8379, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 436, 'idle': 50, 'total': 586}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588})], [({'plug_in': 196, 'charge_end': 237, 'unplug': 437, 'wh': 1583, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 500}, {'energy': 56, 'idle': 760, 'total': 916}), ({'plug_in': 189, 'charge_end': 408, 'unplug': 608, 'wh': 14406, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 649, 'idle': 1000, 'total': 1799}), ({'plug_in': 485, 'charge_end': 673, 'unplug': 678, 'wh': 49217, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1723, 'idle': 0, 'total': 1823}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 579, 'charge_end': 616, 'unplug': 816, 'wh': 38092, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1105, 'idle': 760, 'total': 1865}), ({'plug_in': 434, 'charge_end': 669, 'unplug': 1069, 'wh': 52657, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1528, 'idle': 1000, 'total': 2528}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 423, 'charge_end': 679, 'unplug': 879, 'wh': 7379, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 200}, {'energy': 214, 'idle': 1900, 'total': 2114})], [({'plug_in': 443, 'charge_end': 636, 'unplug': 1036, 'wh': 37050, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 1668, 'idle': 3000, 'total': 4818}), ({'plug_in': 154, 'charge_end': 307, 'unplug': 367, 'wh': 13001, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 200}, {'energy': 677, 'idle': 500, 'total': 1177}), ({'plug_in': 429, 'charge_end': 659, 'unplug': 1059, 'wh': 6145, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 216, 'idle': 1000, 'total': 1366}), ({'plug_in': 505, 'charge_end': 552, 'unplug': 612, 'wh': 43134, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 200}, {'energy': 1251, 'idle': 200, 'total': 1451}), ({'plug_in': 598, 'charge_end': 637, 'unplug': 653, 'wh': 32840, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 953, 'idle': 50, 'total': 1003}), ({'plug_in': 194, 'charge_end': 420, 'unplug': 480, 'wh': 11163, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 324, 'idle': 250, 'total': 724}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588})]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check('fee oracle' + ' %d' % i, 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":"716fc93485eca9e2ae8a5a788f7978aae7773b71ae0c52523679e8622b0a92d3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    energy = -(-x['wh'] * x['price_per_kwh'] // 1000)\n    idle = max(0, x['unplug'] - x['charge_end'] - x['idle_grace'])\n    idle_fee = min(x['idle_cap'], -(-idle // 10) * x['idle_rate'])\n    total = x['session_fee'] + energy + idle_fee\n    return {'energy': energy, 'idle': idle_fee, 'total': max(x['min_fee'], total)}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[({'plug_in': 198, 'charge_end': 364, 'unplug': 379, 'wh': 11108, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 500, 'idle': 50, 'total': 550}), ({'plug_in': 83, 'charge_end': 221, 'unplug': 221, 'wh': 32363, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 939, 'idle': 0, 'total': 1089}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 463, 'charge_end': 667, 'unplug': 1067, 'wh': 38632, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 1353, 'idle': 2000, 'total': 3503}), ({'plug_in': 300, 'charge_end': 327, 'unplug': 352, 'wh': 2749, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 124, 'idle': 100, 'total': 300}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 571, 'charge_end': 611, 'unplug': 671, 'wh': 58013, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 2031, 'idle': 500, 'total': 2681}), ({'plug_in': 585, 'charge_end': 651, 'unplug': 1051, 'wh': 11487, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 517, 'idle': 2000, 'total': 2617})], [({'plug_in': 276, 'charge_end': 449, 'unplug': 849, 'wh': 11301, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 588, 'idle': 1000, 'total': 1738}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 55, 'charge_end': 192, 'unplug': 592, 'wh': 56671, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 2551, 'idle': 2000, 'total': 4701}), ({'plug_in': 119, 'charge_end': 141, 'unplug': 166, 'wh': 50337, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1460, 'idle': 100, 'total': 1710}), ({'plug_in': 133, 'charge_end': 348, 'unplug': 364, 'wh': 39429, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1381, 'idle': 40, 'total': 1521}), ({'plug_in': 367, 'charge_end': 452, 'unplug': 457, 'wh': 33621, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 200}, {'energy': 1177, 'idle': 0, 'total': 1327}), ({'plug_in': 86, 'charge_end': 100, 'unplug': 500, 'wh': 33981, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 986, 'idle': 1560, 'total': 2646})], [({'plug_in': 484, 'charge_end': 691, 'unplug': 696, 'wh': 43716, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1531, 'idle': 0, 'total': 1531}), ({'plug_in': 94, 'charge_end': 104, 'unplug': 504, 'wh': 29791, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1043, 'idle': 1560, 'total': 2603}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 298, 'charge_end': 412, 'unplug': 422, 'wh': 44300, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1285, 'idle': 0, 'total': 1435}), ({'plug_in': 490, 'charge_end': 604, 'unplug': 1004, 'wh': 19203, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 673, 'idle': 1000, 'total': 1773}), ({'plug_in': 35, 'charge_end': 237, 'unplug': 637, 'wh': 21103, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 612, 'idle': 2000, 'total': 2762}), ({'plug_in': 435, 'charge_end': 452, 'unplug': 477, 'wh': 8379, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 436, 'idle': 50, 'total': 586}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588})], [({'plug_in': 196, 'charge_end': 237, 'unplug': 437, 'wh': 1583, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 500}, {'energy': 56, 'idle': 760, 'total': 916}), ({'plug_in': 189, 'charge_end': 408, 'unplug': 608, 'wh': 14406, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 649, 'idle': 1000, 'total': 1799}), ({'plug_in': 485, 'charge_end': 673, 'unplug': 678, 'wh': 49217, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1723, 'idle': 0, 'total': 1823}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 579, 'charge_end': 616, 'unplug': 816, 'wh': 38092, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1105, 'idle': 760, 'total': 1865}), ({'plug_in': 434, 'charge_end': 669, 'unplug': 1069, 'wh': 52657, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1528, 'idle': 1000, 'total': 2528}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588}), ({'plug_in': 423, 'charge_end': 679, 'unplug': 879, 'wh': 7379, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 200}, {'energy': 214, 'idle': 1900, 'total': 2114})], [({'plug_in': 443, 'charge_end': 636, 'unplug': 1036, 'wh': 37050, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 1668, 'idle': 3000, 'total': 4818}), ({'plug_in': 154, 'charge_end': 307, 'unplug': 367, 'wh': 13001, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 200}, {'energy': 677, 'idle': 500, 'total': 1177}), ({'plug_in': 429, 'charge_end': 659, 'unplug': 1059, 'wh': 6145, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 216, 'idle': 1000, 'total': 1366}), ({'plug_in': 505, 'charge_end': 552, 'unplug': 612, 'wh': 43134, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 200}, {'energy': 1251, 'idle': 200, 'total': 1451}), ({'plug_in': 598, 'charge_end': 637, 'unplug': 653, 'wh': 32840, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 953, 'idle': 50, 'total': 1003}), ({'plug_in': 194, 'charge_end': 420, 'unplug': 480, 'wh': 11163, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 324, 'idle': 250, 'total': 724}), ({'plug_in': 30, 'charge_end': 45, 'unplug': 400, 'wh': 800, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 24, 'idle': 1000, 'total': 1024}), ({'plug_in': 0, 'charge_end': 90, 'unplug': 106, 'wh': 12500, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 438, 'idle': 50, 'total': 588})]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check('fee oracle' + ' %d' % i, 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, bounded toy model with a stipulated contract; it makes no claim of conformance to any agency manual or standard. 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-toll_and_parking_fee_computation-ev-idle-fee-idle-start","generated_at":"2026-09-29T14:48:04.655520+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Fee engines bill customers in integer cents; a wrong boundary, rounding stage or cap scope silently over- or under-charges.","repair":"Restore the idle start rule so that the step reads `x['unplug'] - x['charge_end'] - x['idle_grace']`.","root_cause":"Charging time is billed as idle time.","sha256":"12ff33664b239ffd67a12d4fae19a69a4915519ccfe1a3de9d816fc7087873e1","title":"EV charging session and idle fee: idle time is measured from plug-in · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":37.759,"exit_code":1,"observations":[{"actual":{"energy":500,"idle":50,"total":550},"check":"fee oracle 0","expected":{"energy":500,"idle":50,"total":550},"passed":true},{"actual":{"energy":939,"idle":0,"total":1089},"check":"fee oracle 1","expected":{"energy":939,"idle":0,"total":1089},"passed":true},{"actual":{"energy":438,"idle":50,"total":588},"check":"fee oracle 2","expected":{"energy":438,"idle":50,"total":588},"passed":true},{"actual":{"energy":1353,"idle":2000,"total":3503},"check":"fee oracle 3","expected":{"energy":1353,"idle":2000,"total":3503},"passed":true},{"actual":{"energy":124,"idle":0,"total":300},"check":"fee oracle 4","expected":{"energy":124,"idle":100,"total":300},"passed":false},{"actual":{"energy":24,"idle":1000,"total":1024},"check":"fee oracle 5","expected":{"energy":24,"idle":1000,"total":1024},"passed":true},{"actual":{"energy":2031,"idle":300,"total":2481},"check":"fee oracle 6","expected":{"energy":2031,"idle":500,"total":2681},"passed":false},{"actual":{"energy":517,"idle":2000,"total":2617},"check":"fee oracle 7","expected":{"energy":517,"idle":2000,"total":2617},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fee oracle 0\", \"actual\": {\"energy\": 500, \"idle\": 50, \"total\": 550}, \"expected\": {\"energy\": 500, \"idle\": 50, \"total\": 550}, \"passed\": true}, {\"check\": \"fee oracle 1\", \"actual\": {\"energy\": 939, \"idle\": 0, \"total\": 1089}, \"expected\": {\"energy\": 939, \"idle\": 0, \"total\": 1089}, \"passed\": true}, {\"check\": \"fee oracle 2\", \"actual\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"expected\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"passed\": true}, {\"check\": \"fee oracle 3\", \"actual\": {\"energy\": 1353, \"idle\": 2000, \"total\": 3503}, \"expected\": {\"energy\": 1353, \"idle\": 2000, \"total\": 3503}, \"passed\": true}, {\"check\": \"fee oracle 4\", \"actual\": {\"energy\": 124, \"idle\": 0, \"total\": 300}, \"expected\": {\"energy\": 124, \"idle\": 100, \"total\": 300}, \"passed\": false}, {\"check\": \"fee oracle 5\", \"actual\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"expected\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"passed\": true}, {\"check\": \"fee oracle 6\", \"actual\": {\"energy\": 2031, \"idle\": 300, \"total\": 2481}, \"expected\": {\"energy\": 2031, \"idle\": 500, \"total\": 2681}, \"passed\": false}, {\"check\": \"fee oracle 7\", \"actual\": {\"energy\": 517, \"idle\": 2000, \"total\": 2617}, \"expected\": {\"energy\": 517, \"idle\": 2000, \"total\": 2617}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.153,"exit_code":1,"observations":[{"actual":{"energy":500,"idle":900,"total":1400},"check":"fee oracle 0","expected":{"energy":500,"idle":50,"total":550},"passed":false},{"actual":{"energy":939,"idle":650,"total":1739},"check":"fee oracle 1","expected":{"energy":939,"idle":0,"total":1089},"passed":false},{"actual":{"energy":438,"idle":500,"total":1038},"check":"fee oracle 2","expected":{"energy":438,"idle":50,"total":588},"passed":false},{"actual":{"energy":1353,"idle":2000,"total":3503},"check":"fee oracle 3","expected":{"energy":1353,"idle":2000,"total":3503},"passed":true},{"actual":{"energy":124,"idle":400,"total":524},"check":"fee oracle 4","expected":{"energy":124,"idle":100,"total":300},"passed":false},{"actual":{"energy":24,"idle":1000,"total":1024},"check":"fee oracle 5","expected":{"energy":24,"idle":1000,"total":1024},"passed":true},{"actual":{"energy":2031,"idle":900,"total":3081},"check":"fee oracle 6","expected":{"energy":2031,"idle":500,"total":2681},"passed":false},{"actual":{"energy":517,"idle":2000,"total":2617},"check":"fee oracle 7","expected":{"energy":517,"idle":2000,"total":2617},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fee oracle 0\", \"actual\": {\"energy\": 500, \"idle\": 900, \"total\": 1400}, \"expected\": {\"energy\": 500, \"idle\": 50, \"total\": 550}, \"passed\": false}, {\"check\": \"fee oracle 1\", \"actual\": {\"energy\": 939, \"idle\": 650, \"total\": 1739}, \"expected\": {\"energy\": 939, \"idle\": 0, \"total\": 1089}, \"passed\": false}, {\"check\": \"fee oracle 2\", \"actual\": {\"energy\": 438, \"idle\": 500, \"total\": 1038}, \"expected\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"passed\": false}, {\"check\": \"fee oracle 3\", \"actual\": {\"energy\": 1353, \"idle\": 2000, \"total\": 3503}, \"expected\": {\"energy\": 1353, \"idle\": 2000, \"total\": 3503}, \"passed\": true}, {\"check\": \"fee oracle 4\", \"actual\": {\"energy\": 124, \"idle\": 400, \"total\": 524}, \"expected\": {\"energy\": 124, \"idle\": 100, \"total\": 300}, \"passed\": false}, {\"check\": \"fee oracle 5\", \"actual\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"expected\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"passed\": true}, {\"check\": \"fee oracle 6\", \"actual\": {\"energy\": 2031, \"idle\": 900, \"total\": 3081}, \"expected\": {\"energy\": 2031, \"idle\": 500, \"total\": 2681}, \"passed\": false}, {\"check\": \"fee oracle 7\", \"actual\": {\"energy\": 517, \"idle\": 2000, \"total\": 2617}, \"expected\": {\"energy\": 517, \"idle\": 2000, \"total\": 2617}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.197,"exit_code":0,"observations":[{"actual":{"energy":500,"idle":50,"total":550},"check":"fee oracle 0","expected":{"energy":500,"idle":50,"total":550},"passed":true},{"actual":{"energy":939,"idle":0,"total":1089},"check":"fee oracle 1","expected":{"energy":939,"idle":0,"total":1089},"passed":true},{"actual":{"energy":438,"idle":50,"total":588},"check":"fee oracle 2","expected":{"energy":438,"idle":50,"total":588},"passed":true},{"actual":{"energy":1353,"idle":2000,"total":3503},"check":"fee oracle 3","expected":{"energy":1353,"idle":2000,"total":3503},"passed":true},{"actual":{"energy":124,"idle":100,"total":300},"check":"fee oracle 4","expected":{"energy":124,"idle":100,"total":300},"passed":true},{"actual":{"energy":24,"idle":1000,"total":1024},"check":"fee oracle 5","expected":{"energy":24,"idle":1000,"total":1024},"passed":true},{"actual":{"energy":2031,"idle":500,"total":2681},"check":"fee oracle 6","expected":{"energy":2031,"idle":500,"total":2681},"passed":true},{"actual":{"energy":517,"idle":2000,"total":2617},"check":"fee oracle 7","expected":{"energy":517,"idle":2000,"total":2617},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fee oracle 0\", \"actual\": {\"energy\": 500, \"idle\": 50, \"total\": 550}, \"expected\": {\"energy\": 500, \"idle\": 50, \"total\": 550}, \"passed\": true}, {\"check\": \"fee oracle 1\", \"actual\": {\"energy\": 939, \"idle\": 0, \"total\": 1089}, \"expected\": {\"energy\": 939, \"idle\": 0, \"total\": 1089}, \"passed\": true}, {\"check\": \"fee oracle 2\", \"actual\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"expected\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"passed\": true}, {\"check\": \"fee oracle 3\", \"actual\": {\"energy\": 1353, \"idle\": 2000, \"total\": 3503}, \"expected\": {\"energy\": 1353, \"idle\": 2000, \"total\": 3503}, \"passed\": true}, {\"check\": \"fee oracle 4\", \"actual\": {\"energy\": 124, \"idle\": 100, \"total\": 300}, \"expected\": {\"energy\": 124, \"idle\": 100, \"total\": 300}, \"passed\": true}, {\"check\": \"fee oracle 5\", \"actual\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"expected\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"passed\": true}, {\"check\": \"fee oracle 6\", \"actual\": {\"energy\": 2031, \"idle\": 500, \"total\": 2681}, \"expected\": {\"energy\": 2031, \"idle\": 500, \"total\": 2681}, \"passed\": true}, {\"check\": \"fee oracle 7\", \"actual\": {\"energy\": 517, \"idle\": 2000, \"total\": 2617}, \"expected\": {\"energy\": 517, \"idle\": 2000, \"total\": 2617}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}