Skip to content

Commit 0e6ccd3

Browse files
Merge pull request #56
[4.x] Console output added
2 parents e30176f + 4e323ab commit 0e6ccd3

9 files changed

Lines changed: 125 additions & 271 deletions

src/Benchmark.php

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
use DragonCode\Benchmark\Services\ResultService;
1313
use DragonCode\Benchmark\Services\RunnerService;
1414
use DragonCode\Benchmark\Services\ViewService;
15-
use DragonCode\Benchmark\Transformers\ManagerTransformer;
15+
use DragonCode\Benchmark\Transformers\ResultTransformer;
1616
use DragonCode\Benchmark\View\ProgressBarView;
1717

1818
use function abs;
@@ -28,11 +28,11 @@ class Benchmark
2828

2929
public function __construct(
3030
protected RunnerService $runner = new RunnerService,
31-
protected ManagerTransformer $transformer = new ManagerTransformer,
3231
protected ViewService $view = new ViewService,
3332
protected CallbacksService $callbacks = new CallbacksService,
3433
protected CollectorService $collector = new CollectorService,
3534
protected ResultService $result = new ResultService,
35+
protected ResultTransformer $transformer = new ResultTransformer
3636
) {}
3737

3838
public static function make(): static
@@ -109,10 +109,11 @@ public function toData(): array
109109

110110
public function toConsole(): void
111111
{
112-
$stats = $this->transformer->forStats($this->result);
113-
$winner = $this->transformer->forWinners($stats);
112+
$table = $this->transformer->show(
113+
$this->toData()
114+
);
114115

115-
$this->view->table($this->transformer->merge($stats, $winner));
116+
$this->view->table($table);
116117
}
117118

118119
public function assert(): AssertService

src/Transformers/ManagerTransformer.php

Lines changed: 0 additions & 58 deletions
This file was deleted.
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DragonCode\Benchmark\Transformers;
6+
7+
use DragonCode\Benchmark\Data\MetricData;
8+
9+
use function sprintf;
10+
11+
class ResultTransformer
12+
{
13+
/**
14+
* @param \DragonCode\Benchmark\Data\ResultData[] $collection
15+
*/
16+
public function show(array $collection): array
17+
{
18+
$table = [];
19+
20+
foreach ($collection as $key => $item) {
21+
$table['#'][] = $key;
22+
$table['min'][] = $this->value($item->min);
23+
$table['max'][] = $this->value($item->max);
24+
$table['avg'][] = $this->value($item->avg);
25+
$table['total'][] = $this->value($item->total);
26+
}
27+
28+
return $table;
29+
}
30+
31+
protected function value(MetricData $metric): string
32+
{
33+
return sprintf('%d ms - %s b', $metric->time, $metric->memory);
34+
}
35+
}

src/Transformers/SeparatorTransformer.php

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/Transformers/StatsTransformer.php

Lines changed: 0 additions & 81 deletions
This file was deleted.

src/Transformers/TimesTransformer.php

Lines changed: 0 additions & 26 deletions
This file was deleted.

src/Transformers/Transformer.php

Lines changed: 0 additions & 17 deletions
This file was deleted.

src/Transformers/WinnerTransformer.php

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)