2023-11-07 13:27:25 +00:00
|
|
|
"""Test suite for NormalizeObservation wrapper."""
|
|
|
|
|
|
|
|
from gymnasium.wrappers import NormalizeObservation
|
2023-01-20 16:42:27 +01:00
|
|
|
from tests.testing_env import GenericTestEnv
|
|
|
|
|
|
|
|
|
2023-11-07 13:27:25 +00:00
|
|
|
def test_update_running_mean_property():
|
2023-01-20 16:42:27 +01:00
|
|
|
"""Tests that the property `_update_running_mean` freezes/continues the running statistics updating."""
|
|
|
|
env = GenericTestEnv()
|
2023-11-07 13:27:25 +00:00
|
|
|
wrapped_env = NormalizeObservation(env)
|
2023-01-20 16:42:27 +01:00
|
|
|
|
|
|
|
# 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
|