code: def test_run_eval_search(self, model):
      input_file_name = (
          Path(self.get_auto_remove_tmp_dir()) / "utest_input.source"
      )
      output_file_name = input_file_name.parent / "utest_output.txt"
      assert not output_file_name.exists()
  
      text = {
          "en": [
              "Machine learning is great, isn't it?",
              "I like to eat bananas",
              "Tomorrow is another great day!",
          ],
          "de": [
              "Maschinelles Lernen ist großartig, oder?",
              "Ich esse gerne Bananen",
              "Morgen ist wieder ein toller Tag!",
          ],
      }
  
      tmp_dir = Path(self.get_auto_remove_tmp_dir())
      score_path = str(tmp_dir / "scores.json")
      reference_path = str(tmp_dir / "val.target")
      _dump_articles(input_file_name, text["en"])
      _dump_articles(reference_path, text["de"])
      task = (
          "translation_en_to_de"
          if model == T5_TINY
          else "summarization"
      )
      testargs = f"""
              run_eval_search.py
              {model}
              {str(input_file_name)}
              {str(output_file_name)}
              --score_path {score_path}
              --reference_path {reference_path}
              --task {task}
              """.split()
      testargs.extend(
          ["--search", "num_beams=1:2 length_penalty=0.9:1.0"]
      )
  
      with patch.object(sys, "argv", testargs):
          with CaptureStdout() as cs:
              run_search()
          expected_strings = [
              " num_beams | length_penalty",
              model,
              "Best score args",
          ]
          un_expected_strings = ["Info"]
          if "translation" in task:
              expected_strings.append("bleu")
          else:
              expected_strings.extend(ROUGE_KEYS)
          for w in expected_strings:
              assert w in cs.out
          for w in un_expected_strings:
              assert w not in cs.out
          assert Path(output_file_name).exists()
          os.remove(Path(output_file_name))
  
file_path: transformers/examples/legacy/seq2seq/old_test_seq2seq_examples.py
imports: import logging
  import os
  import sys
  from pathlib import Path
  from unittest.mock import patch
  from parameterized import parameterized
  from run_eval import run_generate
  from run_eval_search import run_search
  from transformers.testing_utils import CaptureStdout, TestCasePlus, slow
  from utils import ROUGE_KEYS
label_desc: Use image node_id 4 for calling the TestTheRest obj's underlying member method code with example usage: obj.test_run_eval_search(model) without return types