code: def testNoneTimeStepSpecForPerArmFeaturesRaisesError(self):
      obs_spec = bandit_spec_utils.create_per_arm_observation_spec(
          2, 3, 4
      )
      action_spec = tensor_spec.BoundedTensorSpec((), tf.int32, 0, 3)
      objective_networks = [
          global_and_arm_feature_network.create_feed_forward_common_tower_network(
              obs_spec, (4, 3), (3, 4), (4, 2)
          )
          for _ in range(3)
      ]
      with self.assertRaisesRegexp(
          ValueError,
          "time_step_spec should not be None for per-arm-features policies",
      ):
          greedy_multi_objective_policy.GreedyMultiObjectiveNeuralPolicy(
              None,
              action_spec,
              self._scalarizer,
              objective_networks,
              accepts_per_arm_features=True,
              emit_policy_info=("predicted_rewards_mean",),
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import collections
  from typing import Dict, List, Text, Tuple
  import numpy
  import tensorflow
  from tf_agents.bandits.multi_objective import multi_objective_scalarizer
  from tf_agents.bandits.networks import global_and_arm_feature_network
  from tf_agents.bandits.networks import heteroscedastic_q_network
  from tf_agents.bandits.policies import greedy_multi_objective_neural_policy
  from tf_agents.bandits.specs import utils
  from tf_agents.networks import network
  from tf_agents.policies import utils
  from tf_agents.specs import array_spec
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import time_step
  from tf_agents.typing import types
  from tf_agents.utils import test_utils
label_desc: Use image node_id 18 for calling the GreedyRewardPredictionPolicyTest obj's underlying member method code with example usage: obj.testNoneTimeStepSpecForPerArmFeaturesRaisesError() without return types