Spaces:
Sleeping
Sleeping
import pytest | |
import os | |
import numpy as np | |
from dizoo.minigrid.envs import MiniGridEnv | |
from easydict import EasyDict | |
import copy | |
# The following two cfg can be tested through TestMiniGridAKTDTnv | |
config = dict( | |
env_id='MiniGrid-AKTDT-13x13-v0', | |
flat_obs=True, | |
) | |
cfg = EasyDict(copy.deepcopy(config)) | |
cfg.cfg_type = 'MiniGridEnvDict' | |
config2 = dict( | |
env_id='MiniGrid-AKTDT-7x7-1-v0', | |
flat_obs=True, | |
) | |
cfg2 = EasyDict(copy.deepcopy(config2)) | |
cfg2.cfg_type = 'MiniGridEnvDict' | |
class TestMiniGridEnv: | |
def test_naive(self): | |
env = MiniGridEnv(MiniGridEnv.default_config()) | |
env.seed(314) | |
path = './video' | |
if not os.path.exists(path): | |
os.mkdir(path) | |
env.enable_save_replay(path) | |
assert env._seed == 314 | |
obs = env.reset() | |
act_val = env.info().act_space.value | |
min_val, max_val = act_val['min'], act_val['max'] | |
for i in range(env._max_step): | |
random_action = np.random.randint(min_val, max_val, size=(1, )) | |
timestep = env.step(random_action) | |
print(timestep) | |
print(timestep.obs.max()) | |
assert isinstance(timestep.obs, np.ndarray) | |
assert isinstance(timestep.done, bool) | |
assert timestep.obs.shape == (2739, ) | |
assert timestep.reward.shape == (1, ) | |
assert timestep.reward >= env.info().rew_space.value['min'] | |
assert timestep.reward <= env.info().rew_space.value['max'] | |
if timestep.done: | |
env.reset() | |
print(env.info()) | |
env.close() | |
class TestMiniGridAKTDTnv: | |
def test_adtkt_13(self): | |
env = MiniGridEnv(cfg2) | |
env.seed(314) | |
path = './video' | |
if not os.path.exists(path): | |
os.mkdir(path) | |
env.enable_save_replay(path) | |
assert env._seed == 314 | |
obs = env.reset() | |
act_val = env.info().act_space.value | |
min_val, max_val = act_val['min'], act_val['max'] | |
for i in range(env._max_step): | |
random_action = np.random.randint(min_val, max_val, size=(1, )) | |
timestep = env.step(random_action) | |
print(timestep) | |
print(timestep.obs.max()) | |
assert isinstance(timestep.obs, np.ndarray) | |
assert isinstance(timestep.done, bool) | |
assert timestep.obs.shape == (2667, ) | |
assert timestep.reward.shape == (1, ) | |
assert timestep.reward >= env.info().rew_space.value['min'] | |
assert timestep.reward <= env.info().rew_space.value['max'] | |
if timestep.done: | |
env.reset() | |
print(env.info()) | |
env.close() | |
def test_adtkt_7(self): | |
env = MiniGridEnv(cfg2) | |
env.seed(314) | |
path = './video' | |
if not os.path.exists(path): | |
os.mkdir(path) | |
env.enable_save_replay(path) | |
assert env._seed == 314 | |
obs = env.reset() | |
act_val = env.info().act_space.value | |
min_val, max_val = act_val['min'], act_val['max'] | |
for i in range(env._max_step): | |
random_action = np.random.randint(min_val, max_val, size=(1, )) | |
timestep = env.step(random_action) | |
print(timestep) | |
print(timestep.obs.max()) | |
assert isinstance(timestep.obs, np.ndarray) | |
assert isinstance(timestep.done, bool) | |
assert timestep.obs.shape == (2619, ) | |
assert timestep.reward.shape == (1, ) | |
assert timestep.reward >= env.info().rew_space.value['min'] | |
assert timestep.reward <= env.info().rew_space.value['max'] | |
if timestep.done: | |
env.reset() | |
print(env.info()) | |
env.close() | |