code: def _test_synthetic_reward_net_builder_discrete_actions(
      self, builder: SyntheticRewardNetBuilder
  ) -> None:
      state_normalization_data = _create_norm(STATE_DIM)
      discrete_action_names = ["1", "2"]
      reward_net = builder.build_synthetic_reward_network(
          state_normalization_data,
          discrete_action_names=discrete_action_names,
      )
      input = _create_input()
      output = reward_net(input).predicted_reward
      assert output.shape == (BATCH_SIZE, 1)
  
imports: import unittest
  import numpy.testing
  import torch
  from reagent.core import parameters, types
  from reagent.core.fb_checker import IS_FB_ENVIRONMENT
  from reagent.core.parameters import NormalizationData, NormalizationParameters
  from reagent.net_builder.synthetic_reward.ngram_synthetic_reward import NGramConvNetSyntheticReward, NGramSyntheticReward
  from reagent.net_builder.synthetic_reward.sequence_synthetic_reward import SequenceSyntheticReward
  from reagent.net_builder.synthetic_reward.single_step_synthetic_reward import SingleStepSyntheticReward
  from reagent.net_builder.synthetic_reward.transformer_synthetic_reward import TransformerSyntheticReward
  from reagent.net_builder.synthetic_reward_net_builder import SyntheticRewardNetBuilder
  from reagent.net_builder.unions import SyntheticRewardNetBuilder__Union
  from reagent.preprocessing.identify_types import CONTINUOUS
  from reagent.preprocessing.preprocessor import Preprocessor
label_desc: Use image node_id 6 for calling the TestSyntheticRewardNetBuilder obj's underlying member method code with example usage: obj._test_synthetic_reward_net_builder_discrete_actions(builder) without return types