code: def test_run(
      self, pred_key: Optional[str], sample_size: Optional[int]
  ):
      config = {}
  
      if pred_key:
          config[shap_explainer.EXPLAIN_KEY] = pred_key
  
      if sample_size:
          config[shap_explainer.SAMPLE_KEY] = sample_size
          expected_length = sample_size
      else:
          expected_length = len(self.dataset.examples)
  
      regress_salience = self.shap.run(
          self.dataset.examples,
          self.regression_model,
          self.dataset,
          config=config,
      )
      self.assertLen(regress_salience, expected_length)
  
imports: from typing import Optional
  from absl.testing import absltest
  from absl.testing import parameterized
  from lit_nlp.api import dataset
  from lit_nlp.api import model
  from lit_nlp.api import types
  from lit_nlp.components import shap_explainer
  from lit_nlp.lib import testing_utils
label_desc: Use image node_id 4 for calling the TabularShapExplainerTest obj's underlying member method code with example usage: obj.test_run(pred_key, sample_size) without return types