code: def _multi_input_scalar_kernel_shap_assert(
      self, func: Callable
  ) -> None:
      inp1 = torch.tensor([[23.0, 100.0, 0.0], [20.0, 50.0, 30.0]])
      inp2 = torch.tensor([[20.0, 50.0, 30.0], [0.0, 100.0, 0.0]])
      inp3 = torch.tensor([[0.0, 100.0, 10.0], [20.0, 10.0, 13.0]])
      mask1 = torch.tensor([[1, 1, 1]])
      mask2 = torch.tensor([[0, 1, 2]])
      mask3 = torch.tensor([[0, 1, 2]])
      expected = (
          [[3850.6666, 3850.6666, 3850.6666]] * 2,
          [[306.6666, 3850.6666, 410.6666]] * 2,
          [[306.6666, 3850.6666, 410.6666]] * 2,
      )
  
      self._kernel_shap_test_assert(
          func,
          (inp1, inp2, inp3),
          expected,
          additional_input=(1,),
          feature_mask=(mask1, mask2, mask3),
          perturbations_per_eval=(1,),
          target=None,
          n_samples=1500,
      )
  
imports: import io
  import unittest
  import unittest.mock
  from typing import Any, Callable, List, Tuple, Union
  import torch
  from captum._utils.typing import BaselineType, TensorOrTupleOfTensorsGeneric
  from captum.attr._core.kernel_shap import KernelShap
  from tests.helpers.basic import assertTensorAlmostEqual, assertTensorTuplesAlmostEqual, BaseTest, set_all_random_seeds
  from tests.helpers.basic_models import BasicLinearModel, BasicModel_MultiLayer, BasicModel_MultiLayer_MultiInput
label_desc: Use image node_id 23 for calling the Test obj's underlying member method code with example usage: obj._multi_input_scalar_kernel_shap_assert(func) without return types