class_docstr: Class to run pre-defined method execution scenarios for objects.
  
  Parameters
  ----------
  args : dict of dict, default = None
      dict of argument dicts to be used in methods
      names for keys need not equal names of methods these are used in
          but scripted method will look at key with same name as default
      must be passed to constructor, set in a child class
          or dynamically created in get_args
  default_method_sequence : list of str, default = None
      default sequence for methods to be called
      optional, if given, default method sequence to use in `run`
      if not provided, at least one of the sequence arguments must be passed in `run`
          or default_arg_sequence must be provided
  default_arg_sequence : list of str, default = None
      default sequence of keys for keyword argument dicts to be used
      names for keys need not equal names of methods
      if not provided, at least one of the sequence arguments must be passed in `run`
          or default_method_sequence must be provided
  
  Methods
  -------
  run(obj, args=None, default_method_sequence=None)
      Run a call(args) scenario on obj, and retrieve method outputs.
  is_applicable(obj)
      Check whether scenario is applicable to obj.
  get_args(key, obj)
      Dynamically create args for call defined by key and obj.
      Defaults to self.args[key] if not overridden.
code: def __init__(
      self,
      args=None,
      default_method_sequence=None,
      default_arg_sequence=None,
  ):
      if default_method_sequence is not None:
          self.default_method_sequence = _check_list_of_str(
              default_method_sequence
          )
      elif not hasattr(self, "default_method_sequence"):
          self.default_method_sequence = None
      if default_arg_sequence is not None:
          self.default_arg_sequence = _check_list_of_str(
              default_arg_sequence
          )
      elif not hasattr(self, "default_arg_sequence"):
          self.default_arg_sequence = None
      if args is not None:
          self.args = _check_dict_of_dict(args)
      else:
          if not hasattr(self, "args"):
              raise RuntimeError(
                  "args must either be given to __init__ or set in a child class"
              )
          _check_dict_of_dict(self.args)
  
file_path: sktime/sktime/utils/_testing/scenarios.py
imports: from copy import deepcopy
  from inspect import isclass
label_desc: Use image node_id 1 to create a new TestScenario object  with example: obj = TestScenario(args, default_method_sequence, default_arg_sequence)