diff --git a/src/ale/python/env.py b/src/ale/python/env.py index 1adaf4a00..9133f65d4 100644 --- a/src/ale/python/env.py +++ b/src/ale/python/env.py @@ -102,13 +102,13 @@ def __init__( raise error.Error( f"Invalid stochastic frameskip length of {len(frameskip)}, expected length 2." ) - elif isinstance(frameskip, tuple) and frameskip[0] > frameskip[1]: + elif isinstance(frameskip, tuple) and frameskip[0] >= frameskip[1]: raise error.Error( - "Invalid stochastic frameskip, lower bound is greater than upper bound." + "Invalid stochastic frameskip, lower bound must be strictly less than upper bound." ) elif isinstance(frameskip, tuple) and frameskip[0] <= 0: raise error.Error( - "Invalid stochastic frameskip lower bound is greater than upper bound." + "Invalid stochastic frameskip, lower bound must be positive." ) if render_mode is not None and render_mode not in {"rgb_array", "human"}: diff --git a/tests/python/test_atari_env.py b/tests/python/test_atari_env.py index cdc028508..2aa37faf2 100644 --- a/tests/python/test_atari_env.py +++ b/tests/python/test_atari_env.py @@ -239,7 +239,9 @@ def test_gym_reset_with_infos(tetris_env): assert "frame_number" in info -@pytest.mark.parametrize("frameskip", [0, -1, 4.0, (-1, 5), (0, 5), (5, 2), (1, 2, 3)]) +@pytest.mark.parametrize( + "frameskip", [0, -1, 4.0, (-1, 5), (0, 5), (5, 2), (4, 4), (1, 2, 3)] +) def test_frameskip_warnings(tetris_rom_path, frameskip): with patch("ale_py.roms.Tetris", create=True, new_callable=lambda: tetris_rom_path): with pytest.raises(gymnasium.error.Error):