code: def testObservationsNotCached(self):
      py_env = suite_gym.load("CartPole-v1")
      tf_env = tf_py_environment.TFPyEnvironment(py_env)
  
      time_step_1 = py_env.reset()
      time_step_2 = py_env.reset()
      # Make sure py env generates unique observations
      self.assertNotEqual(
          time_step_1.observation.tolist(),
          time_step_2.observation.tolist(),
      )
  
      # Test tf_env also creates uniquee observations
      time_step_1 = tf_env.reset()
      time_step_2 = tf_env.reset()
  
      observation_1 = self.evaluate(time_step_1.observation).tolist()
      observation_2 = self.evaluate(time_step_2.observation).tolist()
  
      self.assertNotEqual(observation_1, observation_2)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import threading
  from typing import Text
  from absl.testing import parameterized
  from absl.testing.absltest import mock
  import numpy
  import tensorflow
  from tf_agents import specs
  from tf_agents.environments import batched_py_environment
  from tf_agents.environments import py_environment
  from tf_agents.environments import suite_gym
  from tf_agents.environments import tf_py_environment
  from tf_agents.trajectories import time_step
  from tf_agents.utils import common
label_desc: Use image node_id 18 for calling the TFPYEnvironmentTest obj's underlying member method code with example usage: obj.testObservationsNotCached() without return types