mirror of
https://github.com/Farama-Foundation/Gymnasium.git
synced 2025-07-31 22:04:31 +00:00
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""Test suite for StickyActionV0."""
|
|
import pytest
|
|
|
|
from gymnasium.error import InvalidProbability
|
|
from gymnasium.experimental.wrappers import StickyActionV0
|
|
from tests.testing_env import GenericTestEnv
|
|
|
|
SEED = 42
|
|
|
|
DELAY = 3
|
|
NUM_STEPS = 10
|
|
|
|
|
|
def step_fn(self, action):
|
|
return action
|
|
|
|
|
|
def test_sticky_action():
|
|
env = StickyActionV0(GenericTestEnv(step_fn=step_fn), repeat_action_probability=0.5)
|
|
env.reset(seed=SEED)
|
|
env.action_space.seed(SEED)
|
|
|
|
previous_action = None
|
|
for _ in range(NUM_STEPS):
|
|
input_action = env.action_space.sample()
|
|
executed_action = env.step(input_action)
|
|
|
|
if executed_action != input_action:
|
|
assert executed_action == previous_action
|
|
else:
|
|
assert executed_action == input_action
|
|
|
|
previous_action = input_action
|
|
|
|
|
|
@pytest.mark.parametrize(("repeat_action_probability"), [-1, 1, 1.5])
|
|
def test_sticky_action_raise(repeat_action_probability):
|
|
with pytest.raises(InvalidProbability):
|
|
StickyActionV0(
|
|
GenericTestEnv(), repeat_action_probability=repeat_action_probability
|
|
)
|