code: def test_minimal_pert_tuple_test(self) -> None:
      model = BasicModel_MultiLayer()
      text_inp = (
          [["abc", "zyd", "ghi"], ["abc", "uyd", "ghi"]],
          torch.ones((2, 3)) * -97,
      )
  
      model = BasicModel_MultiLayer()
      minimal_pert = MinParamPerturbation(
          forward_func=lambda x: model(*x),
          attack=lambda x, ind, char_val: (
              add_char_batch(x[0], ind, char_val),
              x[1],
          ),
          arg_name="char_val",
          arg_min=0,
          arg_max=26,
          arg_step=1,
          preproc_fn=lambda x: (batch_text_preproc_fn(x[0]), x[1]),
          apply_before_preproc=True,
          correct_fn=alt_correct_fn,
      )
      expected_list = [["abc", "uzyd", "ghi"], ["abc", "uuyd", "ghi"]]
  
      target_inp, pert = minimal_pert.evaluate(
          text_inp,
          target=1,
          attack_kwargs={"ind": 1},
          correct_fn_kwargs={"threshold": 100},
          perturbations_per_eval=15,
      )
      self.assertEqual(pert, 5)
      self.assertListEqual(target_inp[0], expected_list)
  
file_path: captum/tests/robust/test_min_param_perturbation.py
imports: from typing import cast, List
  import torch
  from captum.robust import MinParamPerturbation
  from tests.helpers.basic import assertTensorAlmostEqual, BaseTest
  from tests.helpers.basic_models import BasicModel, BasicModel_MultiLayer
  from torch import Tensor
label_desc: Use image node_id 6 for calling the Test obj's underlying member method code with example usage: obj.test_minimal_pert_tuple_test() without return types