docs: def run(self, reporter=None):
          """This should generally not be overloaded.  Runs the benchmark functions
          that are found in the child class.
          """
          if not reporter: reporter = ConsoleReporter()
          benchmarks = sorted(self._find_benchmarks())
          reporter.write_titles(map(self._function_name_to_title, benchmarks))
          
          for value in self.input():
              results = []
              for b in benchmarks:
                  
                  method = getattr(self, b)
                  arg_count = len(inspect.getargspec(method)[0])
                  
                  if arg_count == 2:
                      results.append(self._run_benchmark(method, value))
                  elif arg_count == 1:
                      results.append(self._run_benchmark(method))
                      
              reporter.write_results(str(value), results)