lithium\test\filter\Coverage::collectLines PHP Method

collectLines() public static method

Takes the raw line numbers and returns results with the code from uncovered lines included.
public static collectLines ( array $result ) : array
$result array The raw line number results
return array
    public static function collectLines($result)
    {
        $aggregate = array('covered' => 0, 'executable' => 0);
        foreach ($result as $class => $coverage) {
            $out = array();
            $file = Libraries::path($class);
            $aggregate['covered'] += count($coverage['covered']);
            $aggregate['executable'] += count($coverage['executable']);
            $uncovered = array_flip($coverage['uncovered']);
            $contents = explode("\n", file_get_contents($file));
            array_unshift($contents, ' ');
            $count = count($contents);
            for ($i = 1; $i <= $count; $i++) {
                if (isset($uncovered[$i])) {
                    if (!isset($out[$i - 2])) {
                        $out[$i - 2] = array('class' => 'ignored', 'data' => '...');
                    }
                    if (!isset($out[$i - 1])) {
                        $out[$i - 1] = array('class' => 'covered', 'data' => $contents[$i - 1]);
                    }
                    $out[$i] = array('class' => 'uncovered', 'data' => $contents[$i]);
                    if (!isset($uncovered[$i + 1])) {
                        $out[$i + 1] = array('class' => 'covered', 'data' => $contents[$i + 1]);
                    }
                } elseif (isset($out[$i - 1]) && $out[$i - 1]['data'] !== '...' && !isset($out[$i]) && !isset($out[$i + 1])) {
                    $out[$i] = array('class' => 'ignored', 'data' => '...');
                }
            }
            $result[$class]['output'][$file] = $out;
        }
        return $result;
    }