code: def run_observation_normalization_for_env(
      environment_type: type,
      env_factory: Callable[[], StructuredEnv],
      norm_config: ConfigType,
  ) -> None:
      """Runs observation normalization tests for maze environments.
  
      :param environment_type: Environment type to assert for.
      :param env_factory: A factory instantiating a structured environment.
      :param norm_config: Observation normalization wrapper arguments (config) dictionary.
      """
  
      # factory creating observation normalized environment
      wrapper_factory = partial(
          init_env_with_observation_normalization,
          env_factory,
          norm_config,
      )
  
      # run individual tests
      env_registration_test(environment_type, wrapper_factory)
      observation_shape_match_test(env_factory, wrapper_factory)
      range_zero_one_observation_value_range_test(wrapper_factory)
  
file_path: maze/maze/test/shared_test_utils/observation_normalization.py
imports: from functools import partial
  from typing import Dict, Callable, Iterable
  import gym
  import numpy
  from maze.core.env.maze_env import CoreEnvType
  from maze.core.env.structured_env import StructuredEnv
  from maze.core.utils.factory import ConfigType
  from maze.core.wrappers.observation_normalization.observation_normalization_wrapper import ObservationNormalizationWrapper
label_desc: Use image node_id 8 for calling a global function with example usage: run_observation_normalization_for_env(environment_type, env_factory, norm_config) without return types