public function execute()
    {
        $this->resultPrinter->printBenchmarkIntro($this);

        $results = array();
        foreach ($this->tests as $test) {
            $testResults = array();
            for ($i = 0; $i < $this->iterations; $i++) {
                $start = time() + microtime();
                $test->run($this->parameters);
                $testResults[] = round((time() + microtime()) - $start, 10);
            }

            $testResults = $this->resultPruner->prune($testResults);

            $this->resultPrinter->printSingleTestResult($test, $testResults);
            $results[$test->getName()] = $testResults;
        }

        $this->resultPrinter->printBenchmarkSummary($this, $results);
        $this->resultPrinter->printBreak();

        return $results;
    }