import json from env.ev_charge_env import EVChargeEnv from agent.baseline_agent import BaselineAgent def run_episode(env, agent): obs, _ = env.reset() total_reward = 0.0 steps = 0 while True: action = agent.select_action(obs) obs, reward, terminated, truncated, _ = env.step(action) total_reward += reward steps += 1 if terminated or truncated or steps >= 200: break return total_reward, steps def main(): env = EVChargeEnv() agent = BaselineAgent() rewards = [] steps_list = [] for _ in range(5): total_reward, steps = run_episode(env, agent) rewards.append(total_reward) steps_list.append(steps) output = { "avg_reward": sum(rewards) / len(rewards), "avg_steps": sum(steps_list) / len(steps_list), "episodes": len(rewards) } print(json.dumps(output)) # Save JSON for reproducibility with open("sample_output.json", "w") as f: json.dump(output, f, indent=4) if __name__ == "__main__": main()