code: def test_get_unsharded_module_names(self) -> None:
      os.environ["RANK"] = "0"
      os.environ["WORLD_SIZE"] = "1"
      os.environ["LOCAL_WORLD_SIZE"] = "1"
      os.environ["MASTER_ADDR"] = str("localhost")
      os.environ["MASTER_PORT"] = str(get_free_port())
      device = torch.device("cpu")
      backend = "gloo"
      dist.init_process_group(backend=backend)
      tables = [
          EmbeddingBagConfig(
              num_embeddings=10,
              embedding_dim=4,
              name="table_" + str(i),
              feature_names=["feature_" + str(i)],
          )
          for i in range(2)
      ]
      weighted_tables = [
          EmbeddingBagConfig(
              num_embeddings=10,
              embedding_dim=4,
              name="weighted_table_" + str(i),
              feature_names=["weighted_feature_" + str(i)],
          )
          for i in range(2)
      ]
      m = TestSparseNN(
          tables=tables,
          weighted_tables=weighted_tables,
          dense_device=device,
          sparse_device=device,
      )
      dmp = DistributedModelParallel(
          module=m,
          init_data_parallel=False,
          device=device,
          sharders=[
              cast(
                  ModuleSharder[torch.nn.Module],
                  EmbeddingBagCollectionSharder(),
              ),
          ],
      )
  
      self.assertListEqual(
          sorted(get_unsharded_module_names(dmp)),
          sorted(
              ["_dmp_wrapped_module.over", "_dmp_wrapped_module.dense"]
          ),
      )
      dist.destroy_process_group()
  
imports: import itertools
  import math
  import os
  import random
  import unittest
  from typing import cast, List, Optional, Tuple
  import torch
  import torch.distributed
  from hypothesis import given, settings, strategies, Verbosity
  from torchrec.distributed.embedding_sharding import bucketize_kjt_before_all2all
  from torchrec.distributed.embeddingbag import EmbeddingBagCollectionSharder
  from torchrec.distributed.model_parallel import DistributedModelParallel
  from torchrec.distributed.test_utils.test_model import TestSparseNN
  from torchrec.distributed.types import BoundsCheckMode, CacheAlgorithm, CacheParams, DataType, ModuleSharder, ParameterSharding
  from torchrec.distributed.utils import add_params_from_parameter_sharding, convert_to_fbgemm_types, get_unsharded_module_names, merge_fused_params
  from torchrec.modules.embedding_configs import EmbeddingBagConfig
  from torchrec.sparse.jagged_tensor import KeyedJaggedTensor
  from torchrec.sparse.test_utils import keyed_jagged_tensor_equals
  from torchrec.test_utils import get_free_port
label_desc: Use image node_id 1 for calling the UtilsTest obj's underlying member method code with example usage: obj.test_get_unsharded_module_names() without return types