docs: def run_sweep(
          self,
          program: Union[circuits.Circuit, schedules.Schedule],
          params: study.Sweepable,
          repetitions: int = 1,
      ) -> List[study.TrialResult]:
          """Runs the supplied Circuit or Schedule, mimicking quantum hardware.
  
          In contrast to run, this allows for sweeping over different parameter
          values.
  
          Args:
              program: The circuit or schedule to simulate.
              params: Parameters to run with the program.
              repetitions: The number of repetitions to simulate.
  
          Returns:
              TrialResult list for this run; one for each possible parameter
              resolver.
          """
          circuit = (program if isinstance(program, circuits.Circuit)
                     else program.to_circuit())
          param_resolvers = study.to_resolvers(params)
  
          trial_results = []  # type: List[study.TrialResult]
          for param_resolver in param_resolvers:
              measurements = self._run(circuit=circuit,
                                       param_resolver=param_resolver,
                                       repetitions=repetitions)
              trial_results.append(study.TrialResult(params=param_resolver,
                                                     repetitions=repetitions,
                                                     measurements=measurements))
          return trial_results