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