def test_describe_handling(): env = gym.make('flashgames.DuskDrive-v0') env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() reward_buffer = get_reward_buffer(env) rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '1'}) assert reward_buffer._remote_episode_id == '1' assert reward_buffer._remote_env_state == 'resetting' assert reward_buffer._current_episode_id == None assert reward_buffer.reward_state( reward_buffer._current_episode_id)._env_state == None rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) assert reward_buffer._remote_episode_id == '1' assert reward_buffer._remote_env_state == 'resetting' assert reward_buffer._current_episode_id == '1' assert reward_buffer.reward_state( reward_buffer._current_episode_id)._env_state == 'resetting'
def test_peek(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) observation, reward, done, info = env.step([spaces.PeekReward]) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '2'}) observation, reward, done, info = env.step([spaces.PeekReward]) assert info['mask.masked.observation'] assert info['mask.masked.action'] assert info['env_status.episode_id'] == '1' assert info['env_status.env_state'] == 'resetting' assert info['env_status.peek.episode_id'] == '2' assert info['env_status.peek.env_state'] == 'resetting' rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60}, {'episode_id': '2'}) observation, reward, done, info = env.step([spaces.PeekReward]) assert not info.get('mask.masked.observation') assert not info.get('mask.masked.action') assert info['env_status.episode_id'] == '1' assert info['env_status.env_state'] == 'resetting' assert info['env_status.peek.episode_id'] == '2' assert info['env_status.peek.env_state'] == 'running'
def test_boundary_simple(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 1, 'done': False, 'info': {}}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 2, 'done': True, 'info': {}}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '2'}) # We have reward of 3 for episode 1, and episode 2 should now be resetting observation, reward, done, info = env.step([]) assert info['mask.masked.observation'] assert info['mask.masked.action'] assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (3, True, 'resetting', '2')
def test_describe_handling(): env = gym.make('flashgames.DuskDrive-v0') env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() reward_buffer = get_reward_buffer(env) rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '1'}) assert reward_buffer._remote_episode_id == '1' assert reward_buffer._remote_env_state == 'resetting' assert reward_buffer._current_episode_id == None assert reward_buffer.reward_state(reward_buffer._current_episode_id)._env_state == None rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) assert reward_buffer._remote_episode_id == '1' assert reward_buffer._remote_env_state == 'resetting' assert reward_buffer._current_episode_id == '1' assert reward_buffer.reward_state(reward_buffer._current_episode_id)._env_state == 'resetting'
def test_boundary_simple(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 1, 'done': False, 'info': {} }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 2, 'done': True, 'info': {} }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '2'}) # We have reward of 3 for episode 1, and episode 2 should now be resetting observation, reward, done, info = env.step([]) assert info['mask.masked.observation'] assert info['mask.masked.action'] assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (3, True, 'resetting', '2')
def test_peek(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) observation, reward, done, info = env.step([spaces.PeekReward]) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '2'}) observation, reward, done, info = env.step([spaces.PeekReward]) assert info['mask.masked.observation'] assert info['mask.masked.action'] assert info['env_status.episode_id'] == '1' assert info['env_status.env_state'] == 'resetting' assert info['env_status.peek.episode_id'] == '2' assert info['env_status.peek.env_state'] == 'resetting' rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60 }, {'episode_id': '2'}) observation, reward, done, info = env.step([spaces.PeekReward]) assert not info.get('mask.masked.observation') assert not info.get('mask.masked.action') assert info['env_status.episode_id'] == '1' assert info['env_status.env_state'] == 'resetting' assert info['env_status.peek.episode_id'] == '2' assert info['env_status.peek.env_state'] == 'running'
def test_boundary_multiple(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) # episode 2 rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '2'}) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '2'}) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60 }, {'episode_id': '2'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 2, 'done': True, 'info': {} }, {'episode_id': '2'}) # episode 3 rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '3'}) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60 }, {'episode_id': '3'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 3, 'done': True, 'info': {} }, {'episode_id': '3'}) # episode 4 rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '4'}) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60 }, {'episode_id': '4'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 4, 'done': False, 'info': {} }, {'episode_id': '4'}) observation, reward, done, info = env.step([]) assert not info.get('mask.masked.observation') assert not info.get('mask.masked.action') assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (2, True, 'running', '4') assert (info['env_status.complete.env_state'], info['env_status.complete.episode_id']) == ('running', '2') observation, reward, done, info = env.step([]) assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (4, False, 'running', '4')
def test_vnc_env(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60 }, {'episode_id': '1'}) observation, reward, done, info = env.step( [spaces.KeyEvent.by_name('a', down=True)]) assert (observation, reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (None, 0, False, None, None) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) observation, reward, done, info = env.step( [spaces.KeyEvent.by_name('a', down=True)]) assert (observation, reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (None, 0, False, 'resetting', '1') rewarder_client._manual_recv('v0.env.describe', { 'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60 }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 10, 'done': False, 'info': {} }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': 15, 'done': False, 'info': {} }, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', { 'reward': -3, 'done': False, 'info': {} }, {'episode_id': '1'}) observation, reward, done, info = env.step( [spaces.KeyEvent.by_name('a', down=True)]) assert sorted(observation.keys()) == ['text', 'vision'] assert observation['text'] == [] assert observation['vision'].shape == (768, 1024, 3) assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (22, False, 'running', '1') assert info['stats.reward.count'] == 3
def test_boundary_multiple(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) # episode 2 rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '2'}) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '2'}) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60}, {'episode_id': '2'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 2, 'done': True, 'info': {}}, {'episode_id': '2'}) # episode 3 rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '3'}) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60}, {'episode_id': '3'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 3, 'done': True, 'info': {}}, {'episode_id': '3'}) # episode 4 rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '4'}) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60}, {'episode_id': '4'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 4, 'done': False, 'info': {}}, {'episode_id': '4'}) observation, reward, done, info = env.step([]) assert not info.get('mask.masked.observation') assert not info.get('mask.masked.action') assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (2, True, 'running', '4') assert (info['env_status.complete.env_state'], info['env_status.complete.episode_id']) == ('running', '2') observation, reward, done, info = env.step([]) assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (4, False, 'running', '4')
def test_vnc_env(): env = gym.make('flashgames.DuskDrive-v0') env = wrappers.Unvectorize(env) env.configure(vnc_driver=FakeVNCSession, rewarder_driver=FakeRewarder, remotes='vnc://example.com:5900+15900') env.reset() rewarder_client = get_rewarder_client(env) rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'resetting', 'fps': 60}, {'episode_id': '1'}) observation, reward, done, info = env.step([spaces.KeyEvent.by_name('a', down=True)]) assert (observation, reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (None, 0, False, None, None) rewarder_client._manual_recv('v0.reply.env.reset', {}, {'episode_id': '1'}) observation, reward, done, info = env.step([spaces.KeyEvent.by_name('a', down=True)]) assert (observation, reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (None, 0, False, 'resetting', '1') rewarder_client._manual_recv('v0.env.describe', {'env_id': 'flashgames.DuskDrive-v0', 'env_state': 'running', 'fps': 60}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 10, 'done': False, 'info': {}}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', {'reward': 15, 'done': False, 'info': {}}, {'episode_id': '1'}) rewarder_client._manual_recv('v0.env.reward', {'reward': -3, 'done': False, 'info': {}}, {'episode_id': '1'}) observation, reward, done, info = env.step([spaces.KeyEvent.by_name('a', down=True)]) assert sorted(observation.keys()) == ['text', 'vision'] assert observation['text'] == [] assert observation['vision'].shape == (768, 1024, 3) assert (reward, done, info['env_status.env_state'], info['env_status.episode_id']) == (22, False, 'running', '1') assert info['stats.reward.count'] == 3