code: def test_cases_with_strategy():
      batch_sizes = [1, 4]
      exploration_strategies = [
          linear_policy.ExplorationStrategy.optimistic,
          linear_policy.ExplorationStrategy.sampling,
      ]
      alphas = [1.0, 0.0]
      cases = []
      for batch_size, strategy, alpha in itertools.product(
          batch_sizes, exploration_strategies, alphas
      ):
          strategy_name = (
              "UCB"
              if strategy
              == linear_policy.ExplorationStrategy.optimistic
              else "TS"
          )
          cases.append(
              dict(
                  testcase_name=f"batch{batch_size}{strategy_name}_alpha{alpha}",
                  batch_size=batch_size,
                  exploration_strategy=strategy,
                  alpha=alpha,
              )
          )
      return parameterized.named_parameters(cases)
  
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 2 for calling a global function with example usage: test_cases_with_strategy() and returns: parameterized