Files
Gymnasium/tests/wrappers/test_normalize_observation.py

34 lines
1.1 KiB
Python
Raw Normal View History

"""Test suite for NormalizeObservation wrapper."""
from gymnasium.wrappers import NormalizeObservation
from tests.testing_env import GenericTestEnv
def test_update_running_mean_property():
"""Tests that the property `_update_running_mean` freezes/continues the running statistics updating."""
env = GenericTestEnv()
wrapped_env = NormalizeObservation(env)
# Default value is True
assert wrapped_env.update_running_mean
wrapped_env.reset()
rms_var_init = wrapped_env.obs_rms.var
rms_mean_init = wrapped_env.obs_rms.mean
# Statistics are updated when env.step()
wrapped_env.step(None)
rms_var_updated = wrapped_env.obs_rms.var
rms_mean_updated = wrapped_env.obs_rms.mean
assert rms_var_init != rms_var_updated
assert rms_mean_init != rms_mean_updated
# Assure property is set
wrapped_env.update_running_mean = False
assert not wrapped_env.update_running_mean
# Statistics are frozen
wrapped_env.step(None)
assert rms_var_updated == wrapped_env.obs_rms.var
assert rms_mean_updated == wrapped_env.obs_rms.mean