protected function _coverage($file, $coverage)
{
$result = [];
$root = $this->parse($file);
foreach ($root->lines['content'] as $num => $content) {
$coverable = null;
foreach ($content['nodes'] as $node) {
if ($node->coverable && $node->lines['stop'] === $num) {
$coverable = $node;
break;
}
}
if (!$coverable) {
continue;
}
if (isset($coverage[$num])) {
$result[$num] = $coverage[$num];
} elseif (isset($coverable->lines['begin'])) {
for ($i = $coverable->lines['begin']; $i <= $num; $i++) {
if (isset($coverage[$i])) {
$result[$num] = $coverage[$i];
break;
}
}
if (!isset($result[$num])) {
$result[$num] = 0;
}
} else {
$result[$num] = 0;
}
}
return $result;
}