code: def testPolicyProducesBoundedAction(self):
      agent = td3_agent.Td3Agent(
          self._time_step_spec,
          self._action_spec,
          critic_network=self._critic_net,
          actor_network=self._bounded_actor_net,
          actor_optimizer=None,
          critic_optimizer=None,
      )
  
      observations = [tf.constant([[1, 2]], dtype=tf.float32)]
      time_steps = ts.restart(observations, batch_size=1)
      action = agent.policy.action(time_steps).action[0]
      self.assertEqual(action.shape.as_list(), [1, 1])
  
      self.evaluate(
          [
              tf.compat.v1.global_variables_initializer(),
              tf.compat.v1.local_variables_initializer(),
          ]
      )
      py_action = self.evaluate(action)
      self.assertTrue(all(py_action <= self._action_spec[0].maximum))
      self.assertTrue(all(py_action >= self._action_spec[0].minimum))
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import numpy
  import tensorflow
  from tf_agents.agents.td3 import td3_agent
  from tf_agents.networks import network
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import policy_step
  from tf_agents.trajectories import time_step
  from tf_agents.trajectories import trajectory
  from tf_agents.utils import common
  from tf_agents.utils import test_utils
label_desc: Use image node_id 8 for calling the TD3AgentTest obj's underlying member method code with example usage: obj.testPolicyProducesBoundedAction() without return types