@pytest.mark.skipif(atari_py is None, reason="Only run this test when atari_py is installed")
def test_atari_preprocessing():
import cv2
env1 = gym.make("PongNoFrameskip-v0")
env2 = AtariPreprocessing(env1, screen_size=84, grayscale_obs=True)
env3 = AtariPreprocessing(env1, screen_size=84, grayscale_obs=False)
obs1 = env1.reset()
assert obs1.shape == (210, 160, 3)
obs2 = env2.reset()
assert obs2.shape == (84, 84)
obs3 = env3.reset()
After Change
np.testing.assert_allclose(obs3, cv2.resize(obs1, (84, 84), interpolation=cv2.INTER_AREA))
obs3_gray = cv2.cvtColor(obs3, cv2.COLOR_RGB2GRAY)
// the edges of the numbers do not render quite the same in the grayscale, so we ignore them
np.testing.assert_allclose(obs2[10:], obs3_gray[10:])