def test_lookup_env(self): instance_id = self.make_env('Airstriker-Genesis') env = api.lookup_env(instance_id) self.assertTrue(env.gamename == 'Airstriker-Genesis') with self.assertRaises(InstanceNotFound): api.lookup_env('not_found')
def test_lookup_env(self): instance_id = self.make_env('CartPole-v1') env = api.lookup_env(instance_id) self.assertTrue(env.spec.id == 'CartPole-v1') with self.assertRaises(InstanceNotFound): api.lookup_env('not_found')
def test_close(self): instance_id = self.make_env('CartPole-v1') env = api.lookup_env(instance_id) self.assertTrue(env != None) api.close(self.ws, instance_id) with self.assertRaises(InstanceNotFound): api.lookup_env(instance_id) resp = json.loads(self.ws.send.call_args[0][0]) self.assertTrue(resp)
def test_continuous_action(self): instance_id = self.make_env('MountainCarContinuous-v0') env = api.lookup_env(instance_id) api.action_sample(self.ws, instance_id) action = json.loads(self.ws.send.call_args[0][0]) self.assertEqual(np.array(action).shape, env.action_space.shape)
def test_action_sample(self): instance_id = self.make_env('CartPole-v1') env = api.lookup_env(instance_id) api.action_sample(self.ws, instance_id) action = json.loads(self.ws.send.call_args[0][0]) self.assertTrue(action in range(env.action_space.n))
def test_action_sample(self): instance_id = self.make_env('Airstriker-Genesis') env = api.lookup_env(instance_id) api.action_sample(self.ws, instance_id) action = json.loads(self.ws.send.call_args[0][0]) self.assertEqual(np.array(action).shape, env.action_space.shape)
def test_action_space(self): instance_id = self.make_env('CartPole-v1') env = api.lookup_env(instance_id) api.action_space(self.ws, instance_id) info = json.loads(self.ws.send.call_args[0][0]) self.assertEqual(info['name'], 'Discrete') self.assertEqual(info['n'], env.action_space.n)
def test_action_space(self): instance_id = self.make_env('Airstriker-Genesis') env = api.lookup_env(instance_id) api.action_space(self.ws, instance_id) info = json.loads(self.ws.send.call_args[0][0]) self.assertEqual(info['name'], 'MultiBinary') self.assertEqual(info['n'], env.action_space.n) self.assertEqual(info['shape'], [env.action_space.n])
def test_observation_space(self): instance_id = self.make_env('CartPole-v1') env = api.lookup_env(instance_id) api.observation_space(self.ws, instance_id) info = json.loads(self.ws.send.call_args[0][0]) self.assertEqual(info['name'], 'Box') self.assertEqual(info['shape'], list(env.observation_space.shape)) self.assertEqual(info['low'], list(env.observation_space.low)) self.assertEqual(info['high'], list(env.observation_space.high))
def test_observation_space(self): instance_id = self.make_env('Airstriker-Genesis') env = api.lookup_env(instance_id) api.observation_space(self.ws, instance_id) info = json.loads(self.ws.send.call_args[0][0]) self.assertEqual(info['name'], 'Box') self.assertEqual(info['shape'], list(env.observation_space.shape)) self.assertEqual(info['low'], env.observation_space.low.tolist()) self.assertEqual(info['high'], env.observation_space.high.tolist())
def test_step(self): instance_id = self.make_env('CartPole-v1') env = api.lookup_env(instance_id) api.reset(self.ws, instance_id) with self.assertRaises(WrongAction): api.step(self.ws, instance_id, 'invalid_action') # valid action action = env.action_space.sample() api.step(self.ws, instance_id, action) observation, reward, done, info = json.loads(self.ws.send.call_args[0][0]) self.assert_valid_state(observation) self.assertTrue(type(reward) == float) self.assertTrue(type(done) == bool) self.assertTrue(type(info) == dict)