ref: 5f5b8eadc1ee8b25c95806d9ce882944e084c8df
converter/vendor/rybakit/msgpack/tests/Perf/Runner.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php /* * This file is part of the rybakit/msgpack.php package. * * (c) Eugene Leonovich <gen.work@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace MessagePack\Tests\Perf; use MessagePack\Tests\Perf\Benchmark\Benchmark; use MessagePack\Tests\Perf\Writer\TableWriter; use MessagePack\Tests\Perf\Writer\Writer; class Runner { private $testData; private $writer; public function __construct(iterable $testData, Writer $writer = null) { $this->testData = $testData; $this->writer = $writer ?: new TableWriter(); } public function run(Benchmark $benchmark, iterable $targets) : array { $this->writer->open($benchmark->getInfo(), $targets); $result = []; foreach ($this->testData as $name => $row) { $test = new Test($name, $row[0], $row[1]); $stats = []; foreach ($targets as $target) { try { $stats[$target->getName()] = $benchmark->benchmark($target, $test); } catch (\Exception $e) { $stats[$target->getName()] = $e; } } $result[$test->getName()] = $stats; $this->writer->write($test, $stats); } $this->writer->close(); return $result; } } |