| from .monitor import Monitor | |
| import gym | |
| import json | |
| def test_monitor(): | |
| import pandas | |
| import os | |
| import uuid | |
| env = gym.make("CartPole-v1") | |
| env.seed(0) | |
| mon_file = "/tmp/baselines-test-%s.monitor.csv" % uuid.uuid4() | |
| menv = Monitor(env, mon_file) | |
| menv.reset() | |
| for _ in range(1000): | |
| _, _, done, _ = menv.step(0) | |
| if done: | |
| menv.reset() | |
| f = open(mon_file, 'rt') | |
| firstline = f.readline() | |
| assert firstline.startswith('#') | |
| metadata = json.loads(firstline[1:]) | |
| assert metadata['env_id'] == "CartPole-v1" | |
| assert set(metadata.keys()) == {'env_id', 't_start'}, "Incorrect keys in monitor metadata" | |
| last_logline = pandas.read_csv(f, index_col=None) | |
| assert set(last_logline.keys()) == {'l', 't', 'r'}, "Incorrect keys in monitor logline" | |
| f.close() | |
| os.remove(mon_file) | |