code: def test_sharding_empty_rank(self) -> None:
      table = self.tables[0]
      embedding_groups = {"group_0": table.feature_names}
      self._run_multi_process_test(
          callable=sharding_single_rank_test,
          world_size=2,
          model_class=TestSequenceSparseNN,
          tables=[table],
          embedding_groups=embedding_groups,
          sharders=[
              TestEmbeddingCollectionSharder(
                  sharding_type=ShardingType.TABLE_WISE.value,
                  kernel_type=EmbeddingComputeKernel.FUSED.value,
              )
          ],
          optim=EmbOptimType.EXACT_SGD,
          backend="nccl",
          variable_batch_size=True,
      )
  
imports: import unittest
  from typing import Any, Dict, List, Optional, Tuple, Type
  import hypothesis.strategies
  import torch
  from fbgemm_gpu.split_embedding_configs import EmbOptimType
  from hypothesis import assume, given, settings, Verbosity
  from torchrec.distributed.embedding_types import EmbeddingComputeKernel
  from torchrec.distributed.fbgemm_qcomm_codec import CommType, QCommsConfig
  from torchrec.distributed.planner import ParameterConstraints
  from torchrec.distributed.test_utils.multi_process import MultiProcessTestBase
  from torchrec.distributed.test_utils.test_model import TestSparseNNBase
  from torchrec.distributed.test_utils.test_sharding import sharding_single_rank_test
  from torchrec.distributed.tests.test_sequence_model import TestEmbeddingCollectionSharder, TestSequenceSparseNN
  from torchrec.distributed.types import ShardingType
  from torchrec.modules.embedding_configs import EmbeddingConfig
  from torchrec.test_utils import seed_and_log, skip_if_asan_class
label_desc: Use image node_id 6 for calling the SequenceModelParallelTest obj's underlying member method code with example usage: obj.test_sharding_empty_rank() without return types