code: def test_empty_sparse_features(self) -> None:
      model = BasicModelWithSparseInputs()
      inp1 = torch.tensor([[1.0, -2.0, 3.0], [2.0, -1.0, 3.0]])
      inp2 = torch.tensor([])
  
      # test empty sparse tensor
      feature_importance = FeaturePermutation(model)
      attr1, attr2 = feature_importance.attribute((inp1, inp2))
      self.assertEqual(attr1.shape, (1, 3))
      self.assertEqual(attr2.shape, (1,))
  
file_path: captum/tests/attr/test_feature_permutation.py
imports: from typing import List, Tuple
  import torch
  from captum.attr._core.feature_permutation import _permute_feature, FeaturePermutation
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
  from tests.helpers.basic_models import BasicModelWithSparseInputs
  from torch import Tensor
label_desc: Use image node_id 9 for calling the Test obj's underlying member method code with example usage: obj.test_empty_sparse_features() without return types