PhpBench\Progress\Logger\HistogramLogger::drawBlocks PHP Метод

drawBlocks() приватный Метод

private drawBlocks ( $freqs )
    private function drawBlocks($freqs)
    {
        $steps = 7;
        $resolution = $this->rows * $steps;
        $max = max($freqs);
        $blocks = [];
        for ($row = 1; $row <= $this->rows; $row++) {
            $blocks[$row] = [];
            foreach ($freqs as &$freq) {
                if (null === $freq || 0 === $freq) {
                    $blocks[$row][] = ' ';
                    continue;
                }
                $scale = 1 / $max * $freq;
                $value = $resolution * $scale;
                $lowerLimit = $resolution - $steps * $row;
                $upperLimit = $lowerLimit + $steps;
                if ($value >= $lowerLimit && $value < $upperLimit) {
                    $blockIndex = $value % $steps;
                    $blocks[$row][] = $this->blocks[$blockIndex];
                } elseif ($value < $lowerLimit) {
                    $blocks[$row][] = ' ';
                } else {
                    $blocks[$row][] = $this->blocks[7];
                }
            }
        }
        $output = [];
        foreach ($blocks as $blockRow) {
            $output[] = implode('', $blockRow);
        }
        $output = implode(sprintf("[%sD", count($blocks[1])), $output);
        $this->output->write($output);
    }