code: def setUp(self):
      super(LinearBanditPolicyTest, self).setUp()
      self._obs_dim = 2
      self._num_actions = 5
      self._obs_spec = tensor_spec.TensorSpec(
          [self._obs_dim], tf.float32
      )
      self._obs_spec_with_mask = (
          tensor_spec.TensorSpec([self._obs_dim], tf.float32),
          tensor_spec.TensorSpec([self._num_actions], tf.int32),
      )
      self._per_arm_obs_spec = (
          bandit_spec_utils.create_per_arm_observation_spec(
              self._obs_dim,
              4,
              self._num_actions,
              add_num_actions_feature=True,
          )
      )
      self._time_step_spec = ts.time_step_spec(self._obs_spec)
      self._time_step_spec_with_mask = ts.time_step_spec(
          self._obs_spec_with_mask
      )
      self._per_arm_time_step_spec = ts.time_step_spec(
          self._per_arm_obs_spec
      )
      self._action_spec = tensor_spec.BoundedTensorSpec(
          shape=(),
          dtype=tf.int32,
          minimum=0,
          maximum=self._num_actions - 1,
          name="action",
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import itertools
  from absl.testing import parameterized
  import numpy
  import tensorflow
  from tf_agents.bandits.policies import linear_bandit_policy
  from tf_agents.bandits.specs import utils
  from tf_agents.policies import utils
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import time_step
  from tf_agents.utils import test_utils
label_desc: Use image node_id 1 for calling the LinearBanditPolicyTest obj's underlying member method code with example usage: obj.setUp() without return types