code: def _run_case(self, case, iteration):
      parser = StepByStepReason.add_cmdline_args(
          ParlaiParser(False, False), None
      )
      parser.set_defaults(
          thought_token="", inner_separator_token=""
      )  # So it's cleaner and there's no separators
      opt = parser.parse_args(
          case.flags.split(" ") if len(case.flags) > 0 else []
      )
      steps_reason = StepByStepReason(opt)
      _, steps, _ = steps_reason.get_full_reason_text(
          {"steps": INPUT_BASE_STEPS, "extrinsic_step": EXTRINSIC_STEP}
      )
      self.assertEqual(
          case.steps_string,
          steps,
          f"Text different in {case.friendly_name}; iteration {iteration}",
      )
  
file_path: ParlAI/tests/tasks/reasoning_teacher/test_step_by_step.py
imports: from typing import List
  import unittest
  from parlai.core.params import ParlaiParser
  from dataclasses import dataclass
label_desc: Use image node_id 1 for calling the TestStepPertubations obj's underlying member method code with example usage: obj._run_case(case, iteration) without return types