code: def test_fully_connected_with_embedding(self) -> None:
      # Intentionally used this long path to make sure we included it in __init__.py
      # pyre-fixme[28]: Unexpected keyword argument `FullyConnectedWithEmbedding`.
      chooser = DiscreteDQNNetBuilder__Union(
          FullyConnectedWithEmbedding=discrete_dqn.fully_connected_with_embedding.FullyConnectedWithEmbedding()
      )
  
      EMBEDDING_TABLE_SIZE = 10
      EMBEDDING_DIM = 32
      # only id_list
      state_feature_config = rlt.ModelFeatureConfig(
          float_feature_infos=[
              rlt.FloatFeatureInfo(name=str(i), feature_id=i)
              for i in range(1, 5)
          ],
          id_list_feature_configs=[
              rlt.IdListFeatureConfig(
                  name="A", feature_id=10, id_mapping_name="A_mapping"
              )
          ],
          id_mapping_config={
              "A_mapping": rlt.IdMappingConfig(
                  embedding_table_size=EMBEDDING_TABLE_SIZE,
                  embedding_dim=EMBEDDING_DIM,
                  hashing=False,
                  pooling_type=PoolingType.SUM,
              )
          },
      )
      self._test_discrete_dqn_net_builder(
          chooser, state_feature_config=state_feature_config
      )
  
      # only id_score_list
      state_feature_config = rlt.ModelFeatureConfig(
          float_feature_infos=[
              rlt.FloatFeatureInfo(name=str(i), feature_id=i)
              for i in range(1, 5)
          ],
          id_score_list_feature_configs=[
              rlt.IdScoreListFeatureConfig(
                  name="A", feature_id=10, id_mapping_name="A_mapping"
              )
          ],
          id_mapping_config={
              "A_mapping": rlt.IdMappingConfig(
                  embedding_table_size=EMBEDDING_TABLE_SIZE,
                  embedding_dim=EMBEDDING_DIM,
                  hashing=False,
                  pooling_type=PoolingType.SUM,
              )
          },
      )
      self._test_discrete_dqn_net_builder(
          chooser, state_feature_config=state_feature_config
      )
  
      # id_list + id_score_list
      state_feature_config = rlt.ModelFeatureConfig(
          float_feature_infos=[
              rlt.FloatFeatureInfo(name=str(i), feature_id=i)
              for i in range(1, 5)
          ],
          id_list_feature_configs=[
              rlt.IdListFeatureConfig(
                  name="A", feature_id=10, id_mapping_name="A_mapping"
              )
          ],
          id_score_list_feature_configs=[
              rlt.IdScoreListFeatureConfig(
                  name="B", feature_id=100, id_mapping_name="A_mapping"
              )
          ],
          id_mapping_config={
              "A_mapping": rlt.IdMappingConfig(
                  embedding_table_size=EMBEDDING_TABLE_SIZE,
                  embedding_dim=EMBEDDING_DIM,
                  hashing=False,
                  pooling_type=PoolingType.SUM,
              )
          },
      )
      self._test_discrete_dqn_net_builder(
          chooser, state_feature_config=state_feature_config
      )
  
file_path: ReAgent/reagent/test/net_builder/test_discrete_dqn_net_builder.py
imports: import unittest
  from reagent.core import types
  from reagent.core.fb_checker import IS_FB_ENVIRONMENT
  from reagent.core.parameters import NormalizationData, NormalizationParameters
  from reagent.net_builder import discrete_dqn
  from reagent.net_builder.unions import DiscreteDQNNetBuilder__Union
  from reagent.preprocessing.identify_types import CONTINUOUS
  from torchrec import PoolingType
label_desc: Use image node_id 4 for calling the TestDiscreteDQNNetBuilder obj's underlying member method code with example usage: obj.test_fully_connected_with_embedding() without return types