code: def test_normalize_return_vector_env():
      env_fns = [make_env(0), make_env(1)]
      envs = gym.vector.SyncVectorEnv(env_fns)
      envs = NormalizeReward(envs)
      obs = envs.reset()
      obs, reward, _, _, _ = envs.step(envs.action_space.sample())
      assert_almost_equal(
          envs.return_rms.mean,
          np.mean([1.5]),  # the mean of first returns [[1, 2]]
          decimal=4,
      )
      obs, reward, _, _, _ = envs.step(envs.action_space.sample())
      assert_almost_equal(
          envs.return_rms.mean,
          np.mean(
              [[1, 2], [2 + envs.gamma * 1, 3 + envs.gamma * 2]]
          ),  # the mean of first and second returns [[1, 2], [2 + envs.gamma * 1, 3 + envs.gamma * 2]]
          decimal=4,
      )
  
file_path: gym/tests/wrappers/test_normalize.py
imports: from typing import Optional
  import numpy
  from numpy.testing import assert_almost_equal
  import gym
  from gym.wrappers.normalize import NormalizeObservation, NormalizeReward
label_desc: Use image node_id 6 for calling a global function with example usage: test_normalize_return_vector_env() without return types