{"abstract":"EV charging session and idle fee returns a wrong result when idle time is billed in whole hours.","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":"Hour blocks overcharge short idle periods.","family":"w2-toll_and_parking_fee_computation-ev-idle-fee-idle-blocks","id":"FA-68711","implementations":{"attempt":{"sha256":"a3fe165b77e9c71793c16b829379d8bfd086d18714e39377915983cea2fedb04","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 // 60) * 6 * 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': 336, 'charge_end': 546, 'unplug': 746, 'wh': 47420, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 2466, 'idle': 1000, 'total': 3616}), ({'plug_in': 255, 'charge_end': 415, 'unplug': 440, 'wh': 45074, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 2344, 'idle': 100, 'total': 2594}), ({'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': 255, 'charge_end': 363, 'unplug': 363, 'wh': 22789, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1026, 'idle': 0, 'total': 1026}), ({'plug_in': 33, 'charge_end': 201, 'unplug': 217, 'wh': 16946, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 492, 'idle': 100, 'total': 692}), ({'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': 383, 'charge_end': 637, 'unplug': 653, 'wh': 34401, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1549, 'idle': 40, 'total': 1689}), ({'plug_in': 442, 'charge_end': 688, 'unplug': 693, 'wh': 8503, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 443, 'idle': 0, 'total': 593})], [({'plug_in': 310, 'charge_end': 372, 'unplug': 372, 'wh': 43702, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1967, 'idle': 0, 'total': 1967}), ({'plug_in': 407, 'charge_end': 628, 'unplug': 638, 'wh': 39296, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 200}, {'energy': 1376, 'idle': 0, 'total': 1376}), ({'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': 185, 'charge_end': 213, 'unplug': 273, 'wh': 18018, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 300}, {'energy': 811, 'idle': 250, 'total': 1161}), ({'plug_in': 196, 'charge_end': 211, 'unplug': 216, 'wh': 46993, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 1645, 'idle': 0, 'total': 1745}), ({'plug_in': 395, 'charge_end': 691, 'unplug': 751, 'wh': 31873, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 925, 'idle': 200, 'total': 1225}), ({'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': 389, 'charge_end': 598, 'unplug': 998, 'wh': 45639, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 300}, {'energy': 2374, 'idle': 1560, 'total': 4034})], [({'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': 103, 'charge_end': 327, 'unplug': 342, 'wh': 43561, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1525, 'idle': 100, 'total': 1625}), ({'plug_in': 249, 'charge_end': 531, 'unplug': 931, 'wh': 12324, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 432, 'idle': 1000, 'total': 1582}), ({'plug_in': 183, 'charge_end': 471, 'unplug': 481, 'wh': 40929, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 2129, 'idle': 0, 'total': 2229}), ({'plug_in': 429, 'charge_end': 480, 'unplug': 505, 'wh': 10405, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 300}, {'energy': 542, 'idle': 80, 'total': 722}), ({'plug_in': 424, 'charge_end': 656, 'unplug': 666, 'wh': 17973, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 630, 'idle': 0, 'total': 780}), ({'plug_in': 48, 'charge_end': 125, 'unplug': 325, 'wh': 4894, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 221, 'idle': 950, 'total': 1171})], [({'plug_in': 50, 'charge_end': 200, 'unplug': 600, 'wh': 44399, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1998, 'idle': 1950, 'total': 3948}), ({'plug_in': 314, 'charge_end': 544, 'unplug': 604, 'wh': 35460, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1242, 'idle': 200, 'total': 1442}), ({'plug_in': 399, 'charge_end': 662, 'unplug': 667, 'wh': 39622, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1150, 'idle': 0, 'total': 1300}), ({'plug_in': 79, 'charge_end': 176, 'unplug': 376, 'wh': 17360, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 782, 'idle': 1000, 'total': 1932}), ({'plug_in': 294, 'charge_end': 497, 'unplug': 507, 'wh': 31972, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 928, 'idle': 0, 'total': 1078}), ({'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': 544, 'charge_end': 698, 'unplug': 714, 'wh': 37260, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1081, 'idle': 50, 'total': 1231}), ({'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': 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': 499, 'charge_end': 740, 'unplug': 755, 'wh': 27977, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 980, 'idle': 40, 'total': 1170}), ({'plug_in': 80, 'charge_end': 251, 'unplug': 276, 'wh': 7861, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 409, 'idle': 80, 'total': 500}), ({'plug_in': 61, 'charge_end': 225, 'unplug': 425, 'wh': 56258, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 300}, {'energy': 2532, 'idle': 1000, 'total': 3532}), ({'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': 369, 'charge_end': 528, 'unplug': 728, 'wh': 22284, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1003, 'idle': 950, 'total': 2053}), ({'plug_in': 547, 'charge_end': 608, 'unplug': 618, 'wh': 31626, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1424, 'idle': 0, 'total': 1524}), ({'plug_in': 593, 'charge_end': 863, 'unplug': 863, 'wh': 5933, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 500}, {'energy': 309, 'idle': 0, 'total': 500})]]\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":"ad118c145edd1c55d9f90b253005535bbe0c2788d14625b1649d7f5028d5584b","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': 336, 'charge_end': 546, 'unplug': 746, 'wh': 47420, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 2466, 'idle': 1000, 'total': 3616}), ({'plug_in': 255, 'charge_end': 415, 'unplug': 440, 'wh': 45074, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 2344, 'idle': 100, 'total': 2594}), ({'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': 255, 'charge_end': 363, 'unplug': 363, 'wh': 22789, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1026, 'idle': 0, 'total': 1026}), ({'plug_in': 33, 'charge_end': 201, 'unplug': 217, 'wh': 16946, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 492, 'idle': 100, 'total': 692}), ({'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': 383, 'charge_end': 637, 'unplug': 653, 'wh': 34401, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1549, 'idle': 40, 'total': 1689}), ({'plug_in': 442, 'charge_end': 688, 'unplug': 693, 'wh': 8503, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 443, 'idle': 0, 'total': 593})], [({'plug_in': 310, 'charge_end': 372, 'unplug': 372, 'wh': 43702, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1967, 'idle': 0, 'total': 1967}), ({'plug_in': 407, 'charge_end': 628, 'unplug': 638, 'wh': 39296, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 200}, {'energy': 1376, 'idle': 0, 'total': 1376}), ({'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': 185, 'charge_end': 213, 'unplug': 273, 'wh': 18018, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 300}, {'energy': 811, 'idle': 250, 'total': 1161}), ({'plug_in': 196, 'charge_end': 211, 'unplug': 216, 'wh': 46993, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 1645, 'idle': 0, 'total': 1745}), ({'plug_in': 395, 'charge_end': 691, 'unplug': 751, 'wh': 31873, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 925, 'idle': 200, 'total': 1225}), ({'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': 389, 'charge_end': 598, 'unplug': 998, 'wh': 45639, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 300}, {'energy': 2374, 'idle': 1560, 'total': 4034})], [({'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': 103, 'charge_end': 327, 'unplug': 342, 'wh': 43561, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1525, 'idle': 100, 'total': 1625}), ({'plug_in': 249, 'charge_end': 531, 'unplug': 931, 'wh': 12324, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 432, 'idle': 1000, 'total': 1582}), ({'plug_in': 183, 'charge_end': 471, 'unplug': 481, 'wh': 40929, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 2129, 'idle': 0, 'total': 2229}), ({'plug_in': 429, 'charge_end': 480, 'unplug': 505, 'wh': 10405, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 300}, {'energy': 542, 'idle': 80, 'total': 722}), ({'plug_in': 424, 'charge_end': 656, 'unplug': 666, 'wh': 17973, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 630, 'idle': 0, 'total': 780}), ({'plug_in': 48, 'charge_end': 125, 'unplug': 325, 'wh': 4894, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 221, 'idle': 950, 'total': 1171})], [({'plug_in': 50, 'charge_end': 200, 'unplug': 600, 'wh': 44399, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1998, 'idle': 1950, 'total': 3948}), ({'plug_in': 314, 'charge_end': 544, 'unplug': 604, 'wh': 35460, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1242, 'idle': 200, 'total': 1442}), ({'plug_in': 399, 'charge_end': 662, 'unplug': 667, 'wh': 39622, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1150, 'idle': 0, 'total': 1300}), ({'plug_in': 79, 'charge_end': 176, 'unplug': 376, 'wh': 17360, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 782, 'idle': 1000, 'total': 1932}), ({'plug_in': 294, 'charge_end': 497, 'unplug': 507, 'wh': 31972, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 928, 'idle': 0, 'total': 1078}), ({'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': 544, 'charge_end': 698, 'unplug': 714, 'wh': 37260, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1081, 'idle': 50, 'total': 1231}), ({'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': 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': 499, 'charge_end': 740, 'unplug': 755, 'wh': 27977, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 980, 'idle': 40, 'total': 1170}), ({'plug_in': 80, 'charge_end': 251, 'unplug': 276, 'wh': 7861, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 409, 'idle': 80, 'total': 500}), ({'plug_in': 61, 'charge_end': 225, 'unplug': 425, 'wh': 56258, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 300}, {'energy': 2532, 'idle': 1000, 'total': 3532}), ({'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': 369, 'charge_end': 528, 'unplug': 728, 'wh': 22284, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1003, 'idle': 950, 'total': 2053}), ({'plug_in': 547, 'charge_end': 608, 'unplug': 618, 'wh': 31626, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1424, 'idle': 0, 'total': 1524}), ({'plug_in': 593, 'charge_end': 863, 'unplug': 863, 'wh': 5933, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 500}, {'energy': 309, 'idle': 0, 'total': 500})]]\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":"eef4db27dada77f4e669965a55fde4a85ea906c9e19215061c23d4989fbae018","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': 336, 'charge_end': 546, 'unplug': 746, 'wh': 47420, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 2466, 'idle': 1000, 'total': 3616}), ({'plug_in': 255, 'charge_end': 415, 'unplug': 440, 'wh': 45074, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 2344, 'idle': 100, 'total': 2594}), ({'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': 255, 'charge_end': 363, 'unplug': 363, 'wh': 22789, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1026, 'idle': 0, 'total': 1026}), ({'plug_in': 33, 'charge_end': 201, 'unplug': 217, 'wh': 16946, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 492, 'idle': 100, 'total': 692}), ({'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': 383, 'charge_end': 637, 'unplug': 653, 'wh': 34401, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1549, 'idle': 40, 'total': 1689}), ({'plug_in': 442, 'charge_end': 688, 'unplug': 693, 'wh': 8503, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 150, 'min_fee': 300}, {'energy': 443, 'idle': 0, 'total': 593})], [({'plug_in': 310, 'charge_end': 372, 'unplug': 372, 'wh': 43702, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1967, 'idle': 0, 'total': 1967}), ({'plug_in': 407, 'charge_end': 628, 'unplug': 638, 'wh': 39296, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 200}, {'energy': 1376, 'idle': 0, 'total': 1376}), ({'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': 185, 'charge_end': 213, 'unplug': 273, 'wh': 18018, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 300}, {'energy': 811, 'idle': 250, 'total': 1161}), ({'plug_in': 196, 'charge_end': 211, 'unplug': 216, 'wh': 46993, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 100, 'min_fee': 300}, {'energy': 1645, 'idle': 0, 'total': 1745}), ({'plug_in': 395, 'charge_end': 691, 'unplug': 751, 'wh': 31873, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 925, 'idle': 200, 'total': 1225}), ({'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': 389, 'charge_end': 598, 'unplug': 998, 'wh': 45639, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 300}, {'energy': 2374, 'idle': 1560, 'total': 4034})], [({'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': 103, 'charge_end': 327, 'unplug': 342, 'wh': 43561, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1525, 'idle': 100, 'total': 1625}), ({'plug_in': 249, 'charge_end': 531, 'unplug': 931, 'wh': 12324, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 432, 'idle': 1000, 'total': 1582}), ({'plug_in': 183, 'charge_end': 471, 'unplug': 481, 'wh': 40929, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 500}, {'energy': 2129, 'idle': 0, 'total': 2229}), ({'plug_in': 429, 'charge_end': 480, 'unplug': 505, 'wh': 10405, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 300}, {'energy': 542, 'idle': 80, 'total': 722}), ({'plug_in': 424, 'charge_end': 656, 'unplug': 666, 'wh': 17973, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 300}, {'energy': 630, 'idle': 0, 'total': 780}), ({'plug_in': 48, 'charge_end': 125, 'unplug': 325, 'wh': 4894, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 300}, {'energy': 221, 'idle': 950, 'total': 1171})], [({'plug_in': 50, 'charge_end': 200, 'unplug': 600, 'wh': 44399, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 500}, {'energy': 1998, 'idle': 1950, 'total': 3948}), ({'plug_in': 314, 'charge_end': 544, 'unplug': 604, 'wh': 35460, 'price_per_kwh': 35, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 0, 'min_fee': 300}, {'energy': 1242, 'idle': 200, 'total': 1442}), ({'plug_in': 399, 'charge_end': 662, 'unplug': 667, 'wh': 39622, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 500}, {'energy': 1150, 'idle': 0, 'total': 1300}), ({'plug_in': 79, 'charge_end': 176, 'unplug': 376, 'wh': 17360, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 500}, {'energy': 782, 'idle': 1000, 'total': 1932}), ({'plug_in': 294, 'charge_end': 497, 'unplug': 507, 'wh': 31972, 'price_per_kwh': 29, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 2000, 'session_fee': 150, 'min_fee': 200}, {'energy': 928, 'idle': 0, 'total': 1078}), ({'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': 544, 'charge_end': 698, 'unplug': 714, 'wh': 37260, 'price_per_kwh': 29, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 500}, {'energy': 1081, 'idle': 50, 'total': 1231}), ({'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': 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': 499, 'charge_end': 740, 'unplug': 755, 'wh': 27977, 'price_per_kwh': 35, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 150, 'min_fee': 200}, {'energy': 980, 'idle': 40, 'total': 1170}), ({'plug_in': 80, 'charge_end': 251, 'unplug': 276, 'wh': 7861, 'price_per_kwh': 52, 'idle_grace': 10, 'idle_rate': 40, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 500}, {'energy': 409, 'idle': 80, 'total': 500}), ({'plug_in': 61, 'charge_end': 225, 'unplug': 425, 'wh': 56258, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 100, 'idle_cap': 1000, 'session_fee': 0, 'min_fee': 300}, {'energy': 2532, 'idle': 1000, 'total': 3532}), ({'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': 369, 'charge_end': 528, 'unplug': 728, 'wh': 22284, 'price_per_kwh': 45, 'idle_grace': 10, 'idle_rate': 50, 'idle_cap': 1000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1003, 'idle': 950, 'total': 2053}), ({'plug_in': 547, 'charge_end': 608, 'unplug': 618, 'wh': 31626, 'price_per_kwh': 45, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 100, 'min_fee': 200}, {'energy': 1424, 'idle': 0, 'total': 1524}), ({'plug_in': 593, 'charge_end': 863, 'unplug': 863, 'wh': 5933, 'price_per_kwh': 52, 'idle_grace': 15, 'idle_rate': 40, 'idle_cap': 3000, 'session_fee': 0, 'min_fee': 500}, {'energy': 309, 'idle': 0, 'total': 500})]]\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-blocks","generated_at":"2026-09-29T14:48:04.799580+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 block rounding rule so that the step reads `-(-idle // 10) * x['idle_rate']`.","root_cause":"Partial idle blocks are free.","sha256":"f83ce173da816565d9fdef5dbe059d188f950236d79d3df8acb87e5f0c7ec095","title":"EV charging session and idle fee: idle time is billed in whole hours · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.145,"exit_code":1,"observations":[{"actual":{"energy":2466,"idle":1000,"total":3616},"check":"fee oracle 0","expected":{"energy":2466,"idle":1000,"total":3616},"passed":true},{"actual":{"energy":2344,"idle":300,"total":2794},"check":"fee oracle 1","expected":{"energy":2344,"idle":100,"total":2594},"passed":false},{"actual":{"energy":24,"idle":1000,"total":1024},"check":"fee oracle 2","expected":{"energy":24,"idle":1000,"total":1024},"passed":true},{"actual":{"energy":1026,"idle":0,"total":1026},"check":"fee oracle 3","expected":{"energy":1026,"idle":0,"total":1026},"passed":true},{"actual":{"energy":492,"idle":600,"total":1192},"check":"fee oracle 4","expected":{"energy":492,"idle":100,"total":692},"passed":false},{"actual":{"energy":438,"idle":300,"total":838},"check":"fee oracle 5","expected":{"energy":438,"idle":50,"total":588},"passed":false},{"actual":{"energy":1549,"idle":240,"total":1889},"check":"fee oracle 6","expected":{"energy":1549,"idle":40,"total":1689},"passed":false},{"actual":{"energy":443,"idle":0,"total":593},"check":"fee oracle 7","expected":{"energy":443,"idle":0,"total":593},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fee oracle 0\", \"actual\": {\"energy\": 2466, \"idle\": 1000, \"total\": 3616}, \"expected\": {\"energy\": 2466, \"idle\": 1000, \"total\": 3616}, \"passed\": true}, {\"check\": \"fee oracle 1\", \"actual\": {\"energy\": 2344, \"idle\": 300, \"total\": 2794}, \"expected\": {\"energy\": 2344, \"idle\": 100, \"total\": 2594}, \"passed\": false}, {\"check\": \"fee oracle 2\", \"actual\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"expected\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"passed\": true}, {\"check\": \"fee oracle 3\", \"actual\": {\"energy\": 1026, \"idle\": 0, \"total\": 1026}, \"expected\": {\"energy\": 1026, \"idle\": 0, \"total\": 1026}, \"passed\": true}, {\"check\": \"fee oracle 4\", \"actual\": {\"energy\": 492, \"idle\": 600, \"total\": 1192}, \"expected\": {\"energy\": 492, \"idle\": 100, \"total\": 692}, \"passed\": false}, {\"check\": \"fee oracle 5\", \"actual\": {\"energy\": 438, \"idle\": 300, \"total\": 838}, \"expected\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"passed\": false}, {\"check\": \"fee oracle 6\", \"actual\": {\"energy\": 1549, \"idle\": 240, \"total\": 1889}, \"expected\": {\"energy\": 1549, \"idle\": 40, \"total\": 1689}, \"passed\": false}, {\"check\": \"fee oracle 7\", \"actual\": {\"energy\": 443, \"idle\": 0, \"total\": 593}, \"expected\": {\"energy\": 443, \"idle\": 0, \"total\": 593}, \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.137,"exit_code":1,"observations":[{"actual":{"energy":2466,"idle":1000,"total":3616},"check":"fee oracle 0","expected":{"energy":2466,"idle":1000,"total":3616},"passed":true},{"actual":{"energy":2344,"idle":50,"total":2544},"check":"fee oracle 1","expected":{"energy":2344,"idle":100,"total":2594},"passed":false},{"actual":{"energy":24,"idle":1000,"total":1024},"check":"fee oracle 2","expected":{"energy":24,"idle":1000,"total":1024},"passed":true},{"actual":{"energy":1026,"idle":0,"total":1026},"check":"fee oracle 3","expected":{"energy":1026,"idle":0,"total":1026},"passed":true},{"actual":{"energy":492,"idle":0,"total":592},"check":"fee oracle 4","expected":{"energy":492,"idle":100,"total":692},"passed":false},{"actual":{"energy":438,"idle":0,"total":538},"check":"fee oracle 5","expected":{"energy":438,"idle":50,"total":588},"passed":false},{"actual":{"energy":1549,"idle":0,"total":1649},"check":"fee oracle 6","expected":{"energy":1549,"idle":40,"total":1689},"passed":false},{"actual":{"energy":443,"idle":0,"total":593},"check":"fee oracle 7","expected":{"energy":443,"idle":0,"total":593},"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fee oracle 0\", \"actual\": {\"energy\": 2466, \"idle\": 1000, \"total\": 3616}, \"expected\": {\"energy\": 2466, \"idle\": 1000, \"total\": 3616}, \"passed\": true}, {\"check\": \"fee oracle 1\", \"actual\": {\"energy\": 2344, \"idle\": 50, \"total\": 2544}, \"expected\": {\"energy\": 2344, \"idle\": 100, \"total\": 2594}, \"passed\": false}, {\"check\": \"fee oracle 2\", \"actual\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"expected\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"passed\": true}, {\"check\": \"fee oracle 3\", \"actual\": {\"energy\": 1026, \"idle\": 0, \"total\": 1026}, \"expected\": {\"energy\": 1026, \"idle\": 0, \"total\": 1026}, \"passed\": true}, {\"check\": \"fee oracle 4\", \"actual\": {\"energy\": 492, \"idle\": 0, \"total\": 592}, \"expected\": {\"energy\": 492, \"idle\": 100, \"total\": 692}, \"passed\": false}, {\"check\": \"fee oracle 5\", \"actual\": {\"energy\": 438, \"idle\": 0, \"total\": 538}, \"expected\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"passed\": false}, {\"check\": \"fee oracle 6\", \"actual\": {\"energy\": 1549, \"idle\": 0, \"total\": 1649}, \"expected\": {\"energy\": 1549, \"idle\": 40, \"total\": 1689}, \"passed\": false}, {\"check\": \"fee oracle 7\", \"actual\": {\"energy\": 443, \"idle\": 0, \"total\": 593}, \"expected\": {\"energy\": 443, \"idle\": 0, \"total\": 593}, \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.219,"exit_code":0,"observations":[{"actual":{"energy":2466,"idle":1000,"total":3616},"check":"fee oracle 0","expected":{"energy":2466,"idle":1000,"total":3616},"passed":true},{"actual":{"energy":2344,"idle":100,"total":2594},"check":"fee oracle 1","expected":{"energy":2344,"idle":100,"total":2594},"passed":true},{"actual":{"energy":24,"idle":1000,"total":1024},"check":"fee oracle 2","expected":{"energy":24,"idle":1000,"total":1024},"passed":true},{"actual":{"energy":1026,"idle":0,"total":1026},"check":"fee oracle 3","expected":{"energy":1026,"idle":0,"total":1026},"passed":true},{"actual":{"energy":492,"idle":100,"total":692},"check":"fee oracle 4","expected":{"energy":492,"idle":100,"total":692},"passed":true},{"actual":{"energy":438,"idle":50,"total":588},"check":"fee oracle 5","expected":{"energy":438,"idle":50,"total":588},"passed":true},{"actual":{"energy":1549,"idle":40,"total":1689},"check":"fee oracle 6","expected":{"energy":1549,"idle":40,"total":1689},"passed":true},{"actual":{"energy":443,"idle":0,"total":593},"check":"fee oracle 7","expected":{"energy":443,"idle":0,"total":593},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fee oracle 0\", \"actual\": {\"energy\": 2466, \"idle\": 1000, \"total\": 3616}, \"expected\": {\"energy\": 2466, \"idle\": 1000, \"total\": 3616}, \"passed\": true}, {\"check\": \"fee oracle 1\", \"actual\": {\"energy\": 2344, \"idle\": 100, \"total\": 2594}, \"expected\": {\"energy\": 2344, \"idle\": 100, \"total\": 2594}, \"passed\": true}, {\"check\": \"fee oracle 2\", \"actual\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"expected\": {\"energy\": 24, \"idle\": 1000, \"total\": 1024}, \"passed\": true}, {\"check\": \"fee oracle 3\", \"actual\": {\"energy\": 1026, \"idle\": 0, \"total\": 1026}, \"expected\": {\"energy\": 1026, \"idle\": 0, \"total\": 1026}, \"passed\": true}, {\"check\": \"fee oracle 4\", \"actual\": {\"energy\": 492, \"idle\": 100, \"total\": 692}, \"expected\": {\"energy\": 492, \"idle\": 100, \"total\": 692}, \"passed\": true}, {\"check\": \"fee oracle 5\", \"actual\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"expected\": {\"energy\": 438, \"idle\": 50, \"total\": 588}, \"passed\": true}, {\"check\": \"fee oracle 6\", \"actual\": {\"energy\": 1549, \"idle\": 40, \"total\": 1689}, \"expected\": {\"energy\": 1549, \"idle\": 40, \"total\": 1689}, \"passed\": true}, {\"check\": \"fee oracle 7\", \"actual\": {\"energy\": 443, \"idle\": 0, \"total\": 593}, \"expected\": {\"energy\": 443, \"idle\": 0, \"total\": 593}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}