mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-08-01 06:07:08 +00:00
* Remove additional ignores from flake8 * Remove all unused imports * Remove all unused imports * Update flake8 and pyupgrade * F841, removed unused variables * E731, removed lambda assignment to variables * Remove E731, F403, F405, F524 * Remove E722, bare exceptions * Remove E712, compare variable == True or == False to is True or is False * Remove E402, module level import not at top of file * Added --pre-file-ignores * Add --per-file-ignores removing E741, E302 and E704 * Add E741, do not use variables named ‘l’, ‘O’, or ‘I’ to ignore issues in classic control * Fixed issues for pytest==6.2 * Remove unnecessary # noqa * Edit comment with the removal of E302 * Added warnings and declared module, attr for pyright type hinting * Remove unused import * Removed flake8 E302 * Updated flake8 from 3.9.2 to 4.0.1 * Remove unused variable
50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
import numpy as np
|
|
import pytest
|
|
|
|
import gym
|
|
from gym.wrappers import FrameStack
|
|
|
|
try:
|
|
import lz4
|
|
except ImportError:
|
|
lz4 = None
|
|
|
|
|
|
pytest.importorskip("gym.envs.atari")
|
|
|
|
|
|
@pytest.mark.parametrize("env_id", ["CartPole-v1", "Pendulum-v1", "Pong-v0"])
|
|
@pytest.mark.parametrize("num_stack", [2, 3, 4])
|
|
@pytest.mark.parametrize(
|
|
"lz4_compress",
|
|
[
|
|
pytest.param(
|
|
True,
|
|
marks=pytest.mark.skipif(
|
|
lz4 is None, reason="Need lz4 to run tests with compression"
|
|
),
|
|
),
|
|
False,
|
|
],
|
|
)
|
|
def test_frame_stack(env_id, num_stack, lz4_compress):
|
|
env = gym.make(env_id)
|
|
shape = env.observation_space.shape
|
|
env = FrameStack(env, num_stack, lz4_compress)
|
|
assert env.observation_space.shape == (num_stack,) + shape
|
|
assert env.observation_space.dtype == env.env.observation_space.dtype
|
|
|
|
dup = gym.make(env_id)
|
|
|
|
obs = env.reset(seed=0)
|
|
dup_obs = dup.reset(seed=0)
|
|
assert np.allclose(obs[-1], dup_obs)
|
|
|
|
for _ in range(num_stack**2):
|
|
action = env.action_space.sample()
|
|
dup_obs, _, _, _ = dup.step(action)
|
|
obs, _, _, _ = env.step(action)
|
|
assert np.allclose(obs[-1], dup_obs)
|
|
|
|
assert len(obs) == num_stack
|