code: def test_ablation_flip_max_ablations_multi_input(self):
      ex = {
          "sentence1": "this movie is terrible",
          "sentence2": "this movie is great",
      }
      ex_tokens1 = self.ablation_flip.tokenize(ex["sentence1"])
      ex_tokens2 = self.ablation_flip.tokenize(ex["sentence2"])
  
      self.regression_config[ablation_flip.NUM_EXAMPLES_KEY] = 20
      self.regression_config[ablation_flip.REGRESSION_THRESH_KEY] = 2
      max_ablations = 1
      self.regression_config[
          ablation_flip.MAX_ABLATIONS_KEY
      ] = max_ablations
      self.regression_config[ablation_flip.FIELDS_TO_ABLATE_KEY] = [
          "sentence1",
          "sentence2",
      ]
      cfs = self.ablation_flip.generate(
          ex, self.regression_model, None, self.regression_config
      )
      for cf in cfs:
          # Number of ablations in each field should be no more than MAX_ABLATIONS.
          cf_tokens1 = self.ablation_flip.tokenize(cf["sentence1"])
          cf_tokens2 = self.ablation_flip.tokenize(cf["sentence2"])
          self.assertGreaterEqual(
              len(cf_tokens1) + len(cf_tokens2),
              len(ex_tokens1) + len(ex_tokens2) - max_ablations,
          )
  
imports: from collections.abc import Iterable, Iterator
  from absl.testing import absltest
  from lit_nlp.api import types
  from lit_nlp.components import ablation_flip
  from lit_nlp.examples.models import glue_models
  import numpy
  from lit_nlp.lib import file_cache
label_desc: Use image node_id 8 for calling the ModelBasedAblationFlipTest obj's underlying member method code with example usage: obj.test_ablation_flip_max_ablations_multi_input() without return types