- * Array
- * (
- * [Money.php] => Array
- * (
- * ...
- * )
- *
- * [MoneyBag.php] => Array
- * (
- * ...
- * )
- * )
- *
- *
- * is transformed into
- *
- *
- * Array
- * (
- * [.] => Array
- * (
- * [Money.php] => Array
- * (
- * ...
- * )
- *
- * [MoneyBag.php] => Array
- * (
- * ...
- * )
- * )
- * )
- *
- *
- * @param array $files
- *
- * @return array
- */
- private function buildDirectoryStructure($files)
- {
- $result = [];
-
- foreach ($files as $path => $file) {
- $path = explode('/', $path);
- $pointer = &$result;
- $max = count($path);
-
- for ($i = 0; $i < $max; $i++) {
- if ($i == ($max - 1)) {
- $type = '/f';
- } else {
- $type = '';
- }
-
- $pointer = &$pointer[$path[$i] . $type];
- }
-
- $pointer = $file;
- }
-
- return $result;
- }
-
- /**
- * Reduces the paths by cutting the longest common start path.
- *
- * For instance,
- *
- *
- * Array
- * (
- * [/home/sb/Money/Money.php] => Array
- * (
- * ...
- * )
- *
- * [/home/sb/Money/MoneyBag.php] => Array
- * (
- * ...
- * )
- * )
- *
- *
- * is reduced to
- *
- *
- * Array
- * (
- * [Money.php] => Array
- * (
- * ...
- * )
- *
- * [MoneyBag.php] => Array
- * (
- * ...
- * )
- * )
- *
- *
- * @param array $files
- *
- * @return string
- */
- private function reducePaths(&$files)
- {
- if (empty($files)) {
- return '.';
- }
-
- $commonPath = '';
- $paths = array_keys($files);
-
- if (count($files) == 1) {
- $commonPath = dirname($paths[0]) . '/';
- $files[basename($paths[0])] = $files[$paths[0]];
-
- unset($files[$paths[0]]);
-
- return $commonPath;
- }
-
- $max = count($paths);
-
- for ($i = 0; $i < $max; $i++) {
- // strip phar:// prefixes
- if (strpos($paths[$i], 'phar://') === 0) {
- $paths[$i] = substr($paths[$i], 7);
- $paths[$i] = strtr($paths[$i], '/', DIRECTORY_SEPARATOR);
- }
- $paths[$i] = explode(DIRECTORY_SEPARATOR, $paths[$i]);
-
- if (empty($paths[$i][0])) {
- $paths[$i][0] = DIRECTORY_SEPARATOR;
- }
- }
-
- $done = false;
- $max = count($paths);
-
- while (!$done) {
- for ($i = 0; $i < $max - 1; $i++) {
- if (!isset($paths[$i][0]) ||
- !isset($paths[$i+1][0]) ||
- $paths[$i][0] != $paths[$i+1][0]) {
- $done = true;
- break;
- }
- }
-
- if (!$done) {
- $commonPath .= $paths[0][0];
-
- if ($paths[0][0] != DIRECTORY_SEPARATOR) {
- $commonPath .= DIRECTORY_SEPARATOR;
- }
-
- for ($i = 0; $i < $max; $i++) {
- array_shift($paths[$i]);
- }
- }
- }
-
- $original = array_keys($files);
- $max = count($original);
-
- for ($i = 0; $i < $max; $i++) {
- $files[implode('/', $paths[$i])] = $files[$original[$i]];
- unset($files[$original[$i]]);
- }
-
- ksort($files);
-
- return substr($commonPath, 0, -1);
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Node/Directory.php b/vendor/phpunit/php-code-coverage/src/Node/Directory.php
deleted file mode 100644
index 6a9f28d..0000000
--- a/vendor/phpunit/php-code-coverage/src/Node/Directory.php
+++ /dev/null
@@ -1,483 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Node;
-
-use SebastianBergmann\CodeCoverage\InvalidArgumentException;
-
-/**
- * Represents a directory in the code coverage information tree.
- */
-class Directory extends AbstractNode implements \IteratorAggregate
-{
- /**
- * @var AbstractNode[]
- */
- private $children = [];
-
- /**
- * @var Directory[]
- */
- private $directories = [];
-
- /**
- * @var File[]
- */
- private $files = [];
-
- /**
- * @var array
- */
- private $classes;
-
- /**
- * @var array
- */
- private $traits;
-
- /**
- * @var array
- */
- private $functions;
-
- /**
- * @var array
- */
- private $linesOfCode = null;
-
- /**
- * @var int
- */
- private $numFiles = -1;
-
- /**
- * @var int
- */
- private $numExecutableLines = -1;
-
- /**
- * @var int
- */
- private $numExecutedLines = -1;
-
- /**
- * @var int
- */
- private $numClasses = -1;
-
- /**
- * @var int
- */
- private $numTestedClasses = -1;
-
- /**
- * @var int
- */
- private $numTraits = -1;
-
- /**
- * @var int
- */
- private $numTestedTraits = -1;
-
- /**
- * @var int
- */
- private $numMethods = -1;
-
- /**
- * @var int
- */
- private $numTestedMethods = -1;
-
- /**
- * @var int
- */
- private $numFunctions = -1;
-
- /**
- * @var int
- */
- private $numTestedFunctions = -1;
-
- /**
- * Returns the number of files in/under this node.
- *
- * @return int
- */
- public function count()
- {
- if ($this->numFiles == -1) {
- $this->numFiles = 0;
-
- foreach ($this->children as $child) {
- $this->numFiles += count($child);
- }
- }
-
- return $this->numFiles;
- }
-
- /**
- * Returns an iterator for this node.
- *
- * @return \RecursiveIteratorIterator
- */
- public function getIterator()
- {
- return new \RecursiveIteratorIterator(
- new Iterator($this),
- \RecursiveIteratorIterator::SELF_FIRST
- );
- }
-
- /**
- * Adds a new directory.
- *
- * @param string $name
- *
- * @return Directory
- */
- public function addDirectory($name)
- {
- $directory = new self($name, $this);
-
- $this->children[] = $directory;
- $this->directories[] = &$this->children[count($this->children) - 1];
-
- return $directory;
- }
-
- /**
- * Adds a new file.
- *
- * @param string $name
- * @param array $coverageData
- * @param array $testData
- * @param bool $cacheTokens
- *
- * @return File
- *
- * @throws InvalidArgumentException
- */
- public function addFile($name, array $coverageData, array $testData, $cacheTokens)
- {
- $file = new File(
- $name,
- $this,
- $coverageData,
- $testData,
- $cacheTokens
- );
-
- $this->children[] = $file;
- $this->files[] = &$this->children[count($this->children) - 1];
-
- $this->numExecutableLines = -1;
- $this->numExecutedLines = -1;
-
- return $file;
- }
-
- /**
- * Returns the directories in this directory.
- *
- * @return array
- */
- public function getDirectories()
- {
- return $this->directories;
- }
-
- /**
- * Returns the files in this directory.
- *
- * @return array
- */
- public function getFiles()
- {
- return $this->files;
- }
-
- /**
- * Returns the child nodes of this node.
- *
- * @return array
- */
- public function getChildNodes()
- {
- return $this->children;
- }
-
- /**
- * Returns the classes of this node.
- *
- * @return array
- */
- public function getClasses()
- {
- if ($this->classes === null) {
- $this->classes = [];
-
- foreach ($this->children as $child) {
- $this->classes = array_merge(
- $this->classes,
- $child->getClasses()
- );
- }
- }
-
- return $this->classes;
- }
-
- /**
- * Returns the traits of this node.
- *
- * @return array
- */
- public function getTraits()
- {
- if ($this->traits === null) {
- $this->traits = [];
-
- foreach ($this->children as $child) {
- $this->traits = array_merge(
- $this->traits,
- $child->getTraits()
- );
- }
- }
-
- return $this->traits;
- }
-
- /**
- * Returns the functions of this node.
- *
- * @return array
- */
- public function getFunctions()
- {
- if ($this->functions === null) {
- $this->functions = [];
-
- foreach ($this->children as $child) {
- $this->functions = array_merge(
- $this->functions,
- $child->getFunctions()
- );
- }
- }
-
- return $this->functions;
- }
-
- /**
- * Returns the LOC/CLOC/NCLOC of this node.
- *
- * @return array
- */
- public function getLinesOfCode()
- {
- if ($this->linesOfCode === null) {
- $this->linesOfCode = ['loc' => 0, 'cloc' => 0, 'ncloc' => 0];
-
- foreach ($this->children as $child) {
- $linesOfCode = $child->getLinesOfCode();
-
- $this->linesOfCode['loc'] += $linesOfCode['loc'];
- $this->linesOfCode['cloc'] += $linesOfCode['cloc'];
- $this->linesOfCode['ncloc'] += $linesOfCode['ncloc'];
- }
- }
-
- return $this->linesOfCode;
- }
-
- /**
- * Returns the number of executable lines.
- *
- * @return int
- */
- public function getNumExecutableLines()
- {
- if ($this->numExecutableLines == -1) {
- $this->numExecutableLines = 0;
-
- foreach ($this->children as $child) {
- $this->numExecutableLines += $child->getNumExecutableLines();
- }
- }
-
- return $this->numExecutableLines;
- }
-
- /**
- * Returns the number of executed lines.
- *
- * @return int
- */
- public function getNumExecutedLines()
- {
- if ($this->numExecutedLines == -1) {
- $this->numExecutedLines = 0;
-
- foreach ($this->children as $child) {
- $this->numExecutedLines += $child->getNumExecutedLines();
- }
- }
-
- return $this->numExecutedLines;
- }
-
- /**
- * Returns the number of classes.
- *
- * @return int
- */
- public function getNumClasses()
- {
- if ($this->numClasses == -1) {
- $this->numClasses = 0;
-
- foreach ($this->children as $child) {
- $this->numClasses += $child->getNumClasses();
- }
- }
-
- return $this->numClasses;
- }
-
- /**
- * Returns the number of tested classes.
- *
- * @return int
- */
- public function getNumTestedClasses()
- {
- if ($this->numTestedClasses == -1) {
- $this->numTestedClasses = 0;
-
- foreach ($this->children as $child) {
- $this->numTestedClasses += $child->getNumTestedClasses();
- }
- }
-
- return $this->numTestedClasses;
- }
-
- /**
- * Returns the number of traits.
- *
- * @return int
- */
- public function getNumTraits()
- {
- if ($this->numTraits == -1) {
- $this->numTraits = 0;
-
- foreach ($this->children as $child) {
- $this->numTraits += $child->getNumTraits();
- }
- }
-
- return $this->numTraits;
- }
-
- /**
- * Returns the number of tested traits.
- *
- * @return int
- */
- public function getNumTestedTraits()
- {
- if ($this->numTestedTraits == -1) {
- $this->numTestedTraits = 0;
-
- foreach ($this->children as $child) {
- $this->numTestedTraits += $child->getNumTestedTraits();
- }
- }
-
- return $this->numTestedTraits;
- }
-
- /**
- * Returns the number of methods.
- *
- * @return int
- */
- public function getNumMethods()
- {
- if ($this->numMethods == -1) {
- $this->numMethods = 0;
-
- foreach ($this->children as $child) {
- $this->numMethods += $child->getNumMethods();
- }
- }
-
- return $this->numMethods;
- }
-
- /**
- * Returns the number of tested methods.
- *
- * @return int
- */
- public function getNumTestedMethods()
- {
- if ($this->numTestedMethods == -1) {
- $this->numTestedMethods = 0;
-
- foreach ($this->children as $child) {
- $this->numTestedMethods += $child->getNumTestedMethods();
- }
- }
-
- return $this->numTestedMethods;
- }
-
- /**
- * Returns the number of functions.
- *
- * @return int
- */
- public function getNumFunctions()
- {
- if ($this->numFunctions == -1) {
- $this->numFunctions = 0;
-
- foreach ($this->children as $child) {
- $this->numFunctions += $child->getNumFunctions();
- }
- }
-
- return $this->numFunctions;
- }
-
- /**
- * Returns the number of tested functions.
- *
- * @return int
- */
- public function getNumTestedFunctions()
- {
- if ($this->numTestedFunctions == -1) {
- $this->numTestedFunctions = 0;
-
- foreach ($this->children as $child) {
- $this->numTestedFunctions += $child->getNumTestedFunctions();
- }
- }
-
- return $this->numTestedFunctions;
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Node/File.php b/vendor/phpunit/php-code-coverage/src/Node/File.php
deleted file mode 100644
index 44856f0..0000000
--- a/vendor/phpunit/php-code-coverage/src/Node/File.php
+++ /dev/null
@@ -1,722 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Node;
-
-use SebastianBergmann\CodeCoverage\InvalidArgumentException;
-
-/**
- * Represents a file in the code coverage information tree.
- */
-class File extends AbstractNode
-{
- /**
- * @var array
- */
- private $coverageData;
-
- /**
- * @var array
- */
- private $testData;
-
- /**
- * @var int
- */
- private $numExecutableLines = 0;
-
- /**
- * @var int
- */
- private $numExecutedLines = 0;
-
- /**
- * @var array
- */
- private $classes = [];
-
- /**
- * @var array
- */
- private $traits = [];
-
- /**
- * @var array
- */
- private $functions = [];
-
- /**
- * @var array
- */
- private $linesOfCode = [];
-
- /**
- * @var int
- */
- private $numClasses = null;
-
- /**
- * @var int
- */
- private $numTestedClasses = 0;
-
- /**
- * @var int
- */
- private $numTraits = null;
-
- /**
- * @var int
- */
- private $numTestedTraits = 0;
-
- /**
- * @var int
- */
- private $numMethods = null;
-
- /**
- * @var int
- */
- private $numTestedMethods = null;
-
- /**
- * @var int
- */
- private $numTestedFunctions = null;
-
- /**
- * @var array
- */
- private $startLines = [];
-
- /**
- * @var array
- */
- private $endLines = [];
-
- /**
- * @var bool
- */
- private $cacheTokens;
-
- /**
- * Constructor.
- *
- * @param string $name
- * @param AbstractNode $parent
- * @param array $coverageData
- * @param array $testData
- * @param bool $cacheTokens
- *
- * @throws InvalidArgumentException
- */
- public function __construct($name, AbstractNode $parent, array $coverageData, array $testData, $cacheTokens)
- {
- if (!is_bool($cacheTokens)) {
- throw InvalidArgumentException::create(
- 1,
- 'boolean'
- );
- }
-
- parent::__construct($name, $parent);
-
- $this->coverageData = $coverageData;
- $this->testData = $testData;
- $this->cacheTokens = $cacheTokens;
-
- $this->calculateStatistics();
- }
-
- /**
- * Returns the number of files in/under this node.
- *
- * @return int
- */
- public function count()
- {
- return 1;
- }
-
- /**
- * Returns the code coverage data of this node.
- *
- * @return array
- */
- public function getCoverageData()
- {
- return $this->coverageData;
- }
-
- /**
- * Returns the test data of this node.
- *
- * @return array
- */
- public function getTestData()
- {
- return $this->testData;
- }
-
- /**
- * Returns the classes of this node.
- *
- * @return array
- */
- public function getClasses()
- {
- return $this->classes;
- }
-
- /**
- * Returns the traits of this node.
- *
- * @return array
- */
- public function getTraits()
- {
- return $this->traits;
- }
-
- /**
- * Returns the functions of this node.
- *
- * @return array
- */
- public function getFunctions()
- {
- return $this->functions;
- }
-
- /**
- * Returns the LOC/CLOC/NCLOC of this node.
- *
- * @return array
- */
- public function getLinesOfCode()
- {
- return $this->linesOfCode;
- }
-
- /**
- * Returns the number of executable lines.
- *
- * @return int
- */
- public function getNumExecutableLines()
- {
- return $this->numExecutableLines;
- }
-
- /**
- * Returns the number of executed lines.
- *
- * @return int
- */
- public function getNumExecutedLines()
- {
- return $this->numExecutedLines;
- }
-
- /**
- * Returns the number of classes.
- *
- * @return int
- */
- public function getNumClasses()
- {
- if ($this->numClasses === null) {
- $this->numClasses = 0;
-
- foreach ($this->classes as $class) {
- foreach ($class['methods'] as $method) {
- if ($method['executableLines'] > 0) {
- $this->numClasses++;
-
- continue 2;
- }
- }
- }
- }
-
- return $this->numClasses;
- }
-
- /**
- * Returns the number of tested classes.
- *
- * @return int
- */
- public function getNumTestedClasses()
- {
- return $this->numTestedClasses;
- }
-
- /**
- * Returns the number of traits.
- *
- * @return int
- */
- public function getNumTraits()
- {
- if ($this->numTraits === null) {
- $this->numTraits = 0;
-
- foreach ($this->traits as $trait) {
- foreach ($trait['methods'] as $method) {
- if ($method['executableLines'] > 0) {
- $this->numTraits++;
-
- continue 2;
- }
- }
- }
- }
-
- return $this->numTraits;
- }
-
- /**
- * Returns the number of tested traits.
- *
- * @return int
- */
- public function getNumTestedTraits()
- {
- return $this->numTestedTraits;
- }
-
- /**
- * Returns the number of methods.
- *
- * @return int
- */
- public function getNumMethods()
- {
- if ($this->numMethods === null) {
- $this->numMethods = 0;
-
- foreach ($this->classes as $class) {
- foreach ($class['methods'] as $method) {
- if ($method['executableLines'] > 0) {
- $this->numMethods++;
- }
- }
- }
-
- foreach ($this->traits as $trait) {
- foreach ($trait['methods'] as $method) {
- if ($method['executableLines'] > 0) {
- $this->numMethods++;
- }
- }
- }
- }
-
- return $this->numMethods;
- }
-
- /**
- * Returns the number of tested methods.
- *
- * @return int
- */
- public function getNumTestedMethods()
- {
- if ($this->numTestedMethods === null) {
- $this->numTestedMethods = 0;
-
- foreach ($this->classes as $class) {
- foreach ($class['methods'] as $method) {
- if ($method['executableLines'] > 0 &&
- $method['coverage'] == 100) {
- $this->numTestedMethods++;
- }
- }
- }
-
- foreach ($this->traits as $trait) {
- foreach ($trait['methods'] as $method) {
- if ($method['executableLines'] > 0 &&
- $method['coverage'] == 100) {
- $this->numTestedMethods++;
- }
- }
- }
- }
-
- return $this->numTestedMethods;
- }
-
- /**
- * Returns the number of functions.
- *
- * @return int
- */
- public function getNumFunctions()
- {
- return count($this->functions);
- }
-
- /**
- * Returns the number of tested functions.
- *
- * @return int
- */
- public function getNumTestedFunctions()
- {
- if ($this->numTestedFunctions === null) {
- $this->numTestedFunctions = 0;
-
- foreach ($this->functions as $function) {
- if ($function['executableLines'] > 0 &&
- $function['coverage'] == 100) {
- $this->numTestedFunctions++;
- }
- }
- }
-
- return $this->numTestedFunctions;
- }
-
- /**
- * Calculates coverage statistics for the file.
- */
- protected function calculateStatistics()
- {
- $classStack = $functionStack = [];
-
- if ($this->cacheTokens) {
- $tokens = \PHP_Token_Stream_CachingFactory::get($this->getPath());
- } else {
- $tokens = new \PHP_Token_Stream($this->getPath());
- }
-
- $this->processClasses($tokens);
- $this->processTraits($tokens);
- $this->processFunctions($tokens);
- $this->linesOfCode = $tokens->getLinesOfCode();
- unset($tokens);
-
- for ($lineNumber = 1; $lineNumber <= $this->linesOfCode['loc']; $lineNumber++) {
- if (isset($this->startLines[$lineNumber])) {
- // Start line of a class.
- if (isset($this->startLines[$lineNumber]['className'])) {
- if (isset($currentClass)) {
- $classStack[] = &$currentClass;
- }
-
- $currentClass = &$this->startLines[$lineNumber];
- } // Start line of a trait.
- elseif (isset($this->startLines[$lineNumber]['traitName'])) {
- $currentTrait = &$this->startLines[$lineNumber];
- } // Start line of a method.
- elseif (isset($this->startLines[$lineNumber]['methodName'])) {
- $currentMethod = &$this->startLines[$lineNumber];
- } // Start line of a function.
- elseif (isset($this->startLines[$lineNumber]['functionName'])) {
- if (isset($currentFunction)) {
- $functionStack[] = &$currentFunction;
- }
-
- $currentFunction = &$this->startLines[$lineNumber];
- }
- }
-
- if (isset($this->coverageData[$lineNumber])) {
- if (isset($currentClass)) {
- $currentClass['executableLines']++;
- }
-
- if (isset($currentTrait)) {
- $currentTrait['executableLines']++;
- }
-
- if (isset($currentMethod)) {
- $currentMethod['executableLines']++;
- }
-
- if (isset($currentFunction)) {
- $currentFunction['executableLines']++;
- }
-
- $this->numExecutableLines++;
-
- if (count($this->coverageData[$lineNumber]) > 0) {
- if (isset($currentClass)) {
- $currentClass['executedLines']++;
- }
-
- if (isset($currentTrait)) {
- $currentTrait['executedLines']++;
- }
-
- if (isset($currentMethod)) {
- $currentMethod['executedLines']++;
- }
-
- if (isset($currentFunction)) {
- $currentFunction['executedLines']++;
- }
-
- $this->numExecutedLines++;
- }
- }
-
- if (isset($this->endLines[$lineNumber])) {
- // End line of a class.
- if (isset($this->endLines[$lineNumber]['className'])) {
- unset($currentClass);
-
- if ($classStack) {
- end($classStack);
- $key = key($classStack);
- $currentClass = &$classStack[$key];
- unset($classStack[$key]);
- }
- } // End line of a trait.
- elseif (isset($this->endLines[$lineNumber]['traitName'])) {
- unset($currentTrait);
- } // End line of a method.
- elseif (isset($this->endLines[$lineNumber]['methodName'])) {
- unset($currentMethod);
- } // End line of a function.
- elseif (isset($this->endLines[$lineNumber]['functionName'])) {
- unset($currentFunction);
-
- if ($functionStack) {
- end($functionStack);
- $key = key($functionStack);
- $currentFunction = &$functionStack[$key];
- unset($functionStack[$key]);
- }
- }
- }
- }
-
- foreach ($this->traits as &$trait) {
- foreach ($trait['methods'] as &$method) {
- if ($method['executableLines'] > 0) {
- $method['coverage'] = ($method['executedLines'] /
- $method['executableLines']) * 100;
- } else {
- $method['coverage'] = 100;
- }
-
- $method['crap'] = $this->crap(
- $method['ccn'],
- $method['coverage']
- );
-
- $trait['ccn'] += $method['ccn'];
- }
-
- if ($trait['executableLines'] > 0) {
- $trait['coverage'] = ($trait['executedLines'] /
- $trait['executableLines']) * 100;
-
- if ($trait['coverage'] == 100) {
- $this->numTestedClasses++;
- }
- } else {
- $trait['coverage'] = 100;
- }
-
- $trait['crap'] = $this->crap(
- $trait['ccn'],
- $trait['coverage']
- );
- }
-
- foreach ($this->classes as &$class) {
- foreach ($class['methods'] as &$method) {
- if ($method['executableLines'] > 0) {
- $method['coverage'] = ($method['executedLines'] /
- $method['executableLines']) * 100;
- } else {
- $method['coverage'] = 100;
- }
-
- $method['crap'] = $this->crap(
- $method['ccn'],
- $method['coverage']
- );
-
- $class['ccn'] += $method['ccn'];
- }
-
- if ($class['executableLines'] > 0) {
- $class['coverage'] = ($class['executedLines'] /
- $class['executableLines']) * 100;
-
- if ($class['coverage'] == 100) {
- $this->numTestedClasses++;
- }
- } else {
- $class['coverage'] = 100;
- }
-
- $class['crap'] = $this->crap(
- $class['ccn'],
- $class['coverage']
- );
- }
- }
-
- /**
- * @param \PHP_Token_Stream $tokens
- */
- protected function processClasses(\PHP_Token_Stream $tokens)
- {
- $classes = $tokens->getClasses();
- unset($tokens);
-
- $link = $this->getId() . '.html#';
-
- foreach ($classes as $className => $class) {
- $this->classes[$className] = [
- 'className' => $className,
- 'methods' => [],
- 'startLine' => $class['startLine'],
- 'executableLines' => 0,
- 'executedLines' => 0,
- 'ccn' => 0,
- 'coverage' => 0,
- 'crap' => 0,
- 'package' => $class['package'],
- 'link' => $link . $class['startLine']
- ];
-
- $this->startLines[$class['startLine']] = &$this->classes[$className];
- $this->endLines[$class['endLine']] = &$this->classes[$className];
-
- foreach ($class['methods'] as $methodName => $method) {
- $this->classes[$className]['methods'][$methodName] = $this->newMethod($methodName, $method, $link);
-
- $this->startLines[$method['startLine']] = &$this->classes[$className]['methods'][$methodName];
- $this->endLines[$method['endLine']] = &$this->classes[$className]['methods'][$methodName];
- }
- }
- }
-
- /**
- * @param \PHP_Token_Stream $tokens
- */
- protected function processTraits(\PHP_Token_Stream $tokens)
- {
- $traits = $tokens->getTraits();
- unset($tokens);
-
- $link = $this->getId() . '.html#';
-
- foreach ($traits as $traitName => $trait) {
- $this->traits[$traitName] = [
- 'traitName' => $traitName,
- 'methods' => [],
- 'startLine' => $trait['startLine'],
- 'executableLines' => 0,
- 'executedLines' => 0,
- 'ccn' => 0,
- 'coverage' => 0,
- 'crap' => 0,
- 'package' => $trait['package'],
- 'link' => $link . $trait['startLine']
- ];
-
- $this->startLines[$trait['startLine']] = &$this->traits[$traitName];
- $this->endLines[$trait['endLine']] = &$this->traits[$traitName];
-
- foreach ($trait['methods'] as $methodName => $method) {
- $this->traits[$traitName]['methods'][$methodName] = $this->newMethod($methodName, $method, $link);
-
- $this->startLines[$method['startLine']] = &$this->traits[$traitName]['methods'][$methodName];
- $this->endLines[$method['endLine']] = &$this->traits[$traitName]['methods'][$methodName];
- }
- }
- }
-
- /**
- * @param \PHP_Token_Stream $tokens
- */
- protected function processFunctions(\PHP_Token_Stream $tokens)
- {
- $functions = $tokens->getFunctions();
- unset($tokens);
-
- $link = $this->getId() . '.html#';
-
- foreach ($functions as $functionName => $function) {
- $this->functions[$functionName] = [
- 'functionName' => $functionName,
- 'signature' => $function['signature'],
- 'startLine' => $function['startLine'],
- 'executableLines' => 0,
- 'executedLines' => 0,
- 'ccn' => $function['ccn'],
- 'coverage' => 0,
- 'crap' => 0,
- 'link' => $link . $function['startLine']
- ];
-
- $this->startLines[$function['startLine']] = &$this->functions[$functionName];
- $this->endLines[$function['endLine']] = &$this->functions[$functionName];
- }
- }
-
- /**
- * Calculates the Change Risk Anti-Patterns (CRAP) index for a unit of code
- * based on its cyclomatic complexity and percentage of code coverage.
- *
- * @param int $ccn
- * @param float $coverage
- *
- * @return string
- */
- protected function crap($ccn, $coverage)
- {
- if ($coverage == 0) {
- return (string) (pow($ccn, 2) + $ccn);
- }
-
- if ($coverage >= 95) {
- return (string) $ccn;
- }
-
- return sprintf(
- '%01.2F',
- pow($ccn, 2) * pow(1 - $coverage/100, 3) + $ccn
- );
- }
-
- /**
- * @param string $methodName
- * @param array $method
- * @param string $link
- *
- * @return array
- */
- private function newMethod($methodName, array $method, $link)
- {
- return [
- 'methodName' => $methodName,
- 'visibility' => $method['visibility'],
- 'signature' => $method['signature'],
- 'startLine' => $method['startLine'],
- 'endLine' => $method['endLine'],
- 'executableLines' => 0,
- 'executedLines' => 0,
- 'ccn' => $method['ccn'],
- 'coverage' => 0,
- 'crap' => 0,
- 'link' => $link . $method['startLine'],
- ];
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php b/vendor/phpunit/php-code-coverage/src/Node/Iterator.php
deleted file mode 100644
index e246380..0000000
--- a/vendor/phpunit/php-code-coverage/src/Node/Iterator.php
+++ /dev/null
@@ -1,103 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Node;
-
-/**
- * Recursive iterator for node object graphs.
- */
-class Iterator implements \RecursiveIterator
-{
- /**
- * @var int
- */
- private $position;
-
- /**
- * @var AbstractNode[]
- */
- private $nodes;
-
- /**
- * @param Directory $node
- */
- public function __construct(Directory $node)
- {
- $this->nodes = $node->getChildNodes();
- }
-
- /**
- * Rewinds the Iterator to the first element.
- */
- public function rewind()
- {
- $this->position = 0;
- }
-
- /**
- * Checks if there is a current element after calls to rewind() or next().
- *
- * @return bool
- */
- public function valid()
- {
- return $this->position < count($this->nodes);
- }
-
- /**
- * Returns the key of the current element.
- *
- * @return int
- */
- public function key()
- {
- return $this->position;
- }
-
- /**
- * Returns the current element.
- *
- * @return \PHPUnit_Framework_Test
- */
- public function current()
- {
- return $this->valid() ? $this->nodes[$this->position] : null;
- }
-
- /**
- * Moves forward to next element.
- */
- public function next()
- {
- $this->position++;
- }
-
- /**
- * Returns the sub iterator for the current element.
- *
- * @return Iterator
- */
- public function getChildren()
- {
- return new self(
- $this->nodes[$this->position]
- );
- }
-
- /**
- * Checks whether the current element has children.
- *
- * @return bool
- */
- public function hasChildren()
- {
- return $this->nodes[$this->position] instanceof Directory;
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Report/Clover.php b/vendor/phpunit/php-code-coverage/src/Report/Clover.php
deleted file mode 100644
index 054b1df..0000000
--- a/vendor/phpunit/php-code-coverage/src/Report/Clover.php
+++ /dev/null
@@ -1,251 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Report;
-
-use SebastianBergmann\CodeCoverage\CodeCoverage;
-use SebastianBergmann\CodeCoverage\Node\File;
-
-/**
- * Generates a Clover XML logfile from a code coverage object.
- */
-class Clover
-{
- /**
- * @param CodeCoverage $coverage
- * @param string $target
- * @param string $name
- *
- * @return string
- */
- public function process(CodeCoverage $coverage, $target = null, $name = null)
- {
- $xmlDocument = new \DOMDocument('1.0', 'UTF-8');
- $xmlDocument->formatOutput = true;
-
- $xmlCoverage = $xmlDocument->createElement('coverage');
- $xmlCoverage->setAttribute('generated', (int) $_SERVER['REQUEST_TIME']);
- $xmlDocument->appendChild($xmlCoverage);
-
- $xmlProject = $xmlDocument->createElement('project');
- $xmlProject->setAttribute('timestamp', (int) $_SERVER['REQUEST_TIME']);
-
- if (is_string($name)) {
- $xmlProject->setAttribute('name', $name);
- }
-
- $xmlCoverage->appendChild($xmlProject);
-
- $packages = [];
- $report = $coverage->getReport();
- unset($coverage);
-
- foreach ($report as $item) {
- if (!$item instanceof File) {
- continue;
- }
-
- /* @var File $item */
-
- $xmlFile = $xmlDocument->createElement('file');
- $xmlFile->setAttribute('name', $item->getPath());
-
- $classes = $item->getClassesAndTraits();
- $coverage = $item->getCoverageData();
- $lines = [];
- $namespace = 'global';
-
- foreach ($classes as $className => $class) {
- $classStatements = 0;
- $coveredClassStatements = 0;
- $coveredMethods = 0;
- $classMethods = 0;
-
- foreach ($class['methods'] as $methodName => $method) {
- if ($method['executableLines'] == 0) {
- continue;
- }
-
- $classMethods++;
- $classStatements += $method['executableLines'];
- $coveredClassStatements += $method['executedLines'];
-
- if ($method['coverage'] == 100) {
- $coveredMethods++;
- }
-
- $methodCount = 0;
-
- foreach (range($method['startLine'], $method['endLine']) as $line) {
- if (isset($coverage[$line]) && ($coverage[$line] !== null)) {
- $methodCount = max($methodCount, count($coverage[$line]));
- }
- }
-
- $lines[$method['startLine']] = [
- 'ccn' => $method['ccn'],
- 'count' => $methodCount,
- 'crap' => $method['crap'],
- 'type' => 'method',
- 'visibility' => $method['visibility'],
- 'name' => $methodName
- ];
- }
-
- if (!empty($class['package']['namespace'])) {
- $namespace = $class['package']['namespace'];
- }
-
- $xmlClass = $xmlDocument->createElement('class');
- $xmlClass->setAttribute('name', $className);
- $xmlClass->setAttribute('namespace', $namespace);
-
- if (!empty($class['package']['fullPackage'])) {
- $xmlClass->setAttribute(
- 'fullPackage',
- $class['package']['fullPackage']
- );
- }
-
- if (!empty($class['package']['category'])) {
- $xmlClass->setAttribute(
- 'category',
- $class['package']['category']
- );
- }
-
- if (!empty($class['package']['package'])) {
- $xmlClass->setAttribute(
- 'package',
- $class['package']['package']
- );
- }
-
- if (!empty($class['package']['subpackage'])) {
- $xmlClass->setAttribute(
- 'subpackage',
- $class['package']['subpackage']
- );
- }
-
- $xmlFile->appendChild($xmlClass);
-
- $xmlMetrics = $xmlDocument->createElement('metrics');
- $xmlMetrics->setAttribute('complexity', $class['ccn']);
- $xmlMetrics->setAttribute('methods', $classMethods);
- $xmlMetrics->setAttribute('coveredmethods', $coveredMethods);
- $xmlMetrics->setAttribute('conditionals', 0);
- $xmlMetrics->setAttribute('coveredconditionals', 0);
- $xmlMetrics->setAttribute('statements', $classStatements);
- $xmlMetrics->setAttribute('coveredstatements', $coveredClassStatements);
- $xmlMetrics->setAttribute('elements', $classMethods + $classStatements /* + conditionals */);
- $xmlMetrics->setAttribute('coveredelements', $coveredMethods + $coveredClassStatements /* + coveredconditionals */);
- $xmlClass->appendChild($xmlMetrics);
- }
-
- foreach ($coverage as $line => $data) {
- if ($data === null || isset($lines[$line])) {
- continue;
- }
-
- $lines[$line] = [
- 'count' => count($data), 'type' => 'stmt'
- ];
- }
-
- ksort($lines);
-
- foreach ($lines as $line => $data) {
- $xmlLine = $xmlDocument->createElement('line');
- $xmlLine->setAttribute('num', $line);
- $xmlLine->setAttribute('type', $data['type']);
-
- if (isset($data['name'])) {
- $xmlLine->setAttribute('name', $data['name']);
- }
-
- if (isset($data['visibility'])) {
- $xmlLine->setAttribute('visibility', $data['visibility']);
- }
-
- if (isset($data['ccn'])) {
- $xmlLine->setAttribute('complexity', $data['ccn']);
- }
-
- if (isset($data['crap'])) {
- $xmlLine->setAttribute('crap', $data['crap']);
- }
-
- $xmlLine->setAttribute('count', $data['count']);
- $xmlFile->appendChild($xmlLine);
- }
-
- $linesOfCode = $item->getLinesOfCode();
-
- $xmlMetrics = $xmlDocument->createElement('metrics');
- $xmlMetrics->setAttribute('loc', $linesOfCode['loc']);
- $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']);
- $xmlMetrics->setAttribute('classes', $item->getNumClassesAndTraits());
- $xmlMetrics->setAttribute('methods', $item->getNumMethods());
- $xmlMetrics->setAttribute('coveredmethods', $item->getNumTestedMethods());
- $xmlMetrics->setAttribute('conditionals', 0);
- $xmlMetrics->setAttribute('coveredconditionals', 0);
- $xmlMetrics->setAttribute('statements', $item->getNumExecutableLines());
- $xmlMetrics->setAttribute('coveredstatements', $item->getNumExecutedLines());
- $xmlMetrics->setAttribute('elements', $item->getNumMethods() + $item->getNumExecutableLines() /* + conditionals */);
- $xmlMetrics->setAttribute('coveredelements', $item->getNumTestedMethods() + $item->getNumExecutedLines() /* + coveredconditionals */);
- $xmlFile->appendChild($xmlMetrics);
-
- if ($namespace == 'global') {
- $xmlProject->appendChild($xmlFile);
- } else {
- if (!isset($packages[$namespace])) {
- $packages[$namespace] = $xmlDocument->createElement(
- 'package'
- );
-
- $packages[$namespace]->setAttribute('name', $namespace);
- $xmlProject->appendChild($packages[$namespace]);
- }
-
- $packages[$namespace]->appendChild($xmlFile);
- }
- }
-
- $linesOfCode = $report->getLinesOfCode();
-
- $xmlMetrics = $xmlDocument->createElement('metrics');
- $xmlMetrics->setAttribute('files', count($report));
- $xmlMetrics->setAttribute('loc', $linesOfCode['loc']);
- $xmlMetrics->setAttribute('ncloc', $linesOfCode['ncloc']);
- $xmlMetrics->setAttribute('classes', $report->getNumClassesAndTraits());
- $xmlMetrics->setAttribute('methods', $report->getNumMethods());
- $xmlMetrics->setAttribute('coveredmethods', $report->getNumTestedMethods());
- $xmlMetrics->setAttribute('conditionals', 0);
- $xmlMetrics->setAttribute('coveredconditionals', 0);
- $xmlMetrics->setAttribute('statements', $report->getNumExecutableLines());
- $xmlMetrics->setAttribute('coveredstatements', $report->getNumExecutedLines());
- $xmlMetrics->setAttribute('elements', $report->getNumMethods() + $report->getNumExecutableLines() /* + conditionals */);
- $xmlMetrics->setAttribute('coveredelements', $report->getNumTestedMethods() + $report->getNumExecutedLines() /* + coveredconditionals */);
- $xmlProject->appendChild($xmlMetrics);
-
- $buffer = $xmlDocument->saveXML();
-
- if ($target !== null) {
- if (!is_dir(dirname($target))) {
- mkdir(dirname($target), 0777, true);
- }
-
- file_put_contents($target, $buffer);
- }
-
- return $buffer;
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php b/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php
deleted file mode 100644
index 7adf78f..0000000
--- a/vendor/phpunit/php-code-coverage/src/Report/Crap4j.php
+++ /dev/null
@@ -1,172 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Report;
-
-use SebastianBergmann\CodeCoverage\CodeCoverage;
-use SebastianBergmann\CodeCoverage\Node\File;
-use SebastianBergmann\CodeCoverage\InvalidArgumentException;
-
-class Crap4j
-{
- /**
- * @var int
- */
- private $threshold;
-
- /**
- * @param int $threshold
- */
- public function __construct($threshold = 30)
- {
- if (!is_int($threshold)) {
- throw InvalidArgumentException::create(
- 1,
- 'integer'
- );
- }
-
- $this->threshold = $threshold;
- }
-
- /**
- * @param CodeCoverage $coverage
- * @param string $target
- * @param string $name
- *
- * @return string
- */
- public function process(CodeCoverage $coverage, $target = null, $name = null)
- {
- $document = new \DOMDocument('1.0', 'UTF-8');
- $document->formatOutput = true;
-
- $root = $document->createElement('crap_result');
- $document->appendChild($root);
-
- $project = $document->createElement('project', is_string($name) ? $name : '');
- $root->appendChild($project);
- $root->appendChild($document->createElement('timestamp', date('Y-m-d H:i:s', (int) $_SERVER['REQUEST_TIME'])));
-
- $stats = $document->createElement('stats');
- $methodsNode = $document->createElement('methods');
-
- $report = $coverage->getReport();
- unset($coverage);
-
- $fullMethodCount = 0;
- $fullCrapMethodCount = 0;
- $fullCrapLoad = 0;
- $fullCrap = 0;
-
- foreach ($report as $item) {
- $namespace = 'global';
-
- if (!$item instanceof File) {
- continue;
- }
-
- $file = $document->createElement('file');
- $file->setAttribute('name', $item->getPath());
-
- $classes = $item->getClassesAndTraits();
-
- foreach ($classes as $className => $class) {
- foreach ($class['methods'] as $methodName => $method) {
- $crapLoad = $this->getCrapLoad($method['crap'], $method['ccn'], $method['coverage']);
-
- $fullCrap += $method['crap'];
- $fullCrapLoad += $crapLoad;
- $fullMethodCount++;
-
- if ($method['crap'] >= $this->threshold) {
- $fullCrapMethodCount++;
- }
-
- $methodNode = $document->createElement('method');
-
- if (!empty($class['package']['namespace'])) {
- $namespace = $class['package']['namespace'];
- }
-
- $methodNode->appendChild($document->createElement('package', $namespace));
- $methodNode->appendChild($document->createElement('className', $className));
- $methodNode->appendChild($document->createElement('methodName', $methodName));
- $methodNode->appendChild($document->createElement('methodSignature', htmlspecialchars($method['signature'])));
- $methodNode->appendChild($document->createElement('fullMethod', htmlspecialchars($method['signature'])));
- $methodNode->appendChild($document->createElement('crap', $this->roundValue($method['crap'])));
- $methodNode->appendChild($document->createElement('complexity', $method['ccn']));
- $methodNode->appendChild($document->createElement('coverage', $this->roundValue($method['coverage'])));
- $methodNode->appendChild($document->createElement('crapLoad', round($crapLoad)));
-
- $methodsNode->appendChild($methodNode);
- }
- }
- }
-
- $stats->appendChild($document->createElement('name', 'Method Crap Stats'));
- $stats->appendChild($document->createElement('methodCount', $fullMethodCount));
- $stats->appendChild($document->createElement('crapMethodCount', $fullCrapMethodCount));
- $stats->appendChild($document->createElement('crapLoad', round($fullCrapLoad)));
- $stats->appendChild($document->createElement('totalCrap', $fullCrap));
-
- if ($fullMethodCount > 0) {
- $crapMethodPercent = $this->roundValue((100 * $fullCrapMethodCount) / $fullMethodCount);
- } else {
- $crapMethodPercent = 0;
- }
-
- $stats->appendChild($document->createElement('crapMethodPercent', $crapMethodPercent));
-
- $root->appendChild($stats);
- $root->appendChild($methodsNode);
-
- $buffer = $document->saveXML();
-
- if ($target !== null) {
- if (!is_dir(dirname($target))) {
- mkdir(dirname($target), 0777, true);
- }
-
- file_put_contents($target, $buffer);
- }
-
- return $buffer;
- }
-
- /**
- * @param float $crapValue
- * @param int $cyclomaticComplexity
- * @param float $coveragePercent
- *
- * @return float
- */
- private function getCrapLoad($crapValue, $cyclomaticComplexity, $coveragePercent)
- {
- $crapLoad = 0;
-
- if ($crapValue >= $this->threshold) {
- $crapLoad += $cyclomaticComplexity * (1.0 - $coveragePercent / 100);
- $crapLoad += $cyclomaticComplexity / $this->threshold;
- }
-
- return $crapLoad;
- }
-
- /**
- * @param float $value
- *
- * @return float
- */
- private function roundValue($value)
- {
- return round($value, 2);
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php
deleted file mode 100644
index adcfe42..0000000
--- a/vendor/phpunit/php-code-coverage/src/Report/Html/Facade.php
+++ /dev/null
@@ -1,179 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Report\Html;
-
-use SebastianBergmann\CodeCoverage\CodeCoverage;
-use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode;
-use SebastianBergmann\CodeCoverage\RuntimeException;
-
-/**
- * Generates an HTML report from a code coverage object.
- */
-class Facade
-{
- /**
- * @var string
- */
- private $templatePath;
-
- /**
- * @var string
- */
- private $generator;
-
- /**
- * @var int
- */
- private $lowUpperBound;
-
- /**
- * @var int
- */
- private $highLowerBound;
-
- /**
- * Constructor.
- *
- * @param int $lowUpperBound
- * @param int $highLowerBound
- * @param string $generator
- */
- public function __construct($lowUpperBound = 50, $highLowerBound = 90, $generator = '')
- {
- $this->generator = $generator;
- $this->highLowerBound = $highLowerBound;
- $this->lowUpperBound = $lowUpperBound;
- $this->templatePath = __DIR__ . '/Renderer/Template/';
- }
-
- /**
- * @param CodeCoverage $coverage
- * @param string $target
- */
- public function process(CodeCoverage $coverage, $target)
- {
- $target = $this->getDirectory($target);
- $report = $coverage->getReport();
- unset($coverage);
-
- if (!isset($_SERVER['REQUEST_TIME'])) {
- $_SERVER['REQUEST_TIME'] = time();
- }
-
- $date = date('D M j G:i:s T Y', $_SERVER['REQUEST_TIME']);
-
- $dashboard = new Dashboard(
- $this->templatePath,
- $this->generator,
- $date,
- $this->lowUpperBound,
- $this->highLowerBound
- );
-
- $directory = new Directory(
- $this->templatePath,
- $this->generator,
- $date,
- $this->lowUpperBound,
- $this->highLowerBound
- );
-
- $file = new File(
- $this->templatePath,
- $this->generator,
- $date,
- $this->lowUpperBound,
- $this->highLowerBound
- );
-
- $directory->render($report, $target . 'index.html');
- $dashboard->render($report, $target . 'dashboard.html');
-
- foreach ($report as $node) {
- $id = $node->getId();
-
- if ($node instanceof DirectoryNode) {
- if (!file_exists($target . $id)) {
- mkdir($target . $id, 0777, true);
- }
-
- $directory->render($node, $target . $id . '/index.html');
- $dashboard->render($node, $target . $id . '/dashboard.html');
- } else {
- $dir = dirname($target . $id);
-
- if (!file_exists($dir)) {
- mkdir($dir, 0777, true);
- }
-
- $file->render($node, $target . $id . '.html');
- }
- }
-
- $this->copyFiles($target);
- }
-
- /**
- * @param string $target
- */
- private function copyFiles($target)
- {
- $dir = $this->getDirectory($target . 'css');
- copy($this->templatePath . 'css/bootstrap.min.css', $dir . 'bootstrap.min.css');
- copy($this->templatePath . 'css/nv.d3.min.css', $dir . 'nv.d3.min.css');
- copy($this->templatePath . 'css/style.css', $dir . 'style.css');
-
- $dir = $this->getDirectory($target . 'fonts');
- copy($this->templatePath . 'fonts/glyphicons-halflings-regular.eot', $dir . 'glyphicons-halflings-regular.eot');
- copy($this->templatePath . 'fonts/glyphicons-halflings-regular.svg', $dir . 'glyphicons-halflings-regular.svg');
- copy($this->templatePath . 'fonts/glyphicons-halflings-regular.ttf', $dir . 'glyphicons-halflings-regular.ttf');
- copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff', $dir . 'glyphicons-halflings-regular.woff');
- copy($this->templatePath . 'fonts/glyphicons-halflings-regular.woff2', $dir . 'glyphicons-halflings-regular.woff2');
-
- $dir = $this->getDirectory($target . 'js');
- copy($this->templatePath . 'js/bootstrap.min.js', $dir . 'bootstrap.min.js');
- copy($this->templatePath . 'js/d3.min.js', $dir . 'd3.min.js');
- copy($this->templatePath . 'js/holder.min.js', $dir . 'holder.min.js');
- copy($this->templatePath . 'js/html5shiv.min.js', $dir . 'html5shiv.min.js');
- copy($this->templatePath . 'js/jquery.min.js', $dir . 'jquery.min.js');
- copy($this->templatePath . 'js/nv.d3.min.js', $dir . 'nv.d3.min.js');
- copy($this->templatePath . 'js/respond.min.js', $dir . 'respond.min.js');
- }
-
- /**
- * @param string $directory
- *
- * @return string
- *
- * @throws RuntimeException
- */
- private function getDirectory($directory)
- {
- if (substr($directory, -1, 1) != DIRECTORY_SEPARATOR) {
- $directory .= DIRECTORY_SEPARATOR;
- }
-
- if (is_dir($directory)) {
- return $directory;
- }
-
- if (@mkdir($directory, 0777, true)) {
- return $directory;
- }
-
- throw new RuntimeException(
- sprintf(
- 'Directory "%s" does not exist.',
- $directory
- )
- );
- }
-}
diff --git a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php b/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php
deleted file mode 100644
index da0937e..0000000
--- a/vendor/phpunit/php-code-coverage/src/Report/Html/Renderer.php
+++ /dev/null
@@ -1,298 +0,0 @@
-
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace SebastianBergmann\CodeCoverage\Report\Html;
-
-use SebastianBergmann\CodeCoverage\Node\AbstractNode;
-use SebastianBergmann\CodeCoverage\Node\File as FileNode;
-use SebastianBergmann\CodeCoverage\Node\Directory as DirectoryNode;
-use SebastianBergmann\Environment\Runtime;
-use SebastianBergmann\Version;
-
-/**
- * Base class for node renderers.
- */
-abstract class Renderer
-{
- /**
- * @var string
- */
- protected $templatePath;
-
- /**
- * @var string
- */
- protected $generator;
-
- /**
- * @var string
- */
- protected $date;
-
- /**
- * @var int
- */
- protected $lowUpperBound;
-
- /**
- * @var int
- */
- protected $highLowerBound;
-
- /**
- * @var string
- */
- protected $version;
-
- /**
- * Constructor.
- *
- * @param string $templatePath
- * @param string $generator
- * @param string $date
- * @param int $lowUpperBound
- * @param int $highLowerBound
- */
- public function __construct($templatePath, $generator, $date, $lowUpperBound, $highLowerBound)
- {
- $version = new Version('4.0.8', dirname(dirname(dirname(dirname(__DIR__)))));
-
- $this->templatePath = $templatePath;
- $this->generator = $generator;
- $this->date = $date;
- $this->lowUpperBound = $lowUpperBound;
- $this->highLowerBound = $highLowerBound;
- $this->version = $version->getVersion();
- }
-
- /**
- * @param \Text_Template $template
- * @param array $data
- *
- * @return string
- */
- protected function renderItemTemplate(\Text_Template $template, array $data)
- {
- $numSeparator = ' / ';
-
- if (isset($data['numClasses']) && $data['numClasses'] > 0) {
- $classesLevel = $this->getColorLevel($data['testedClassesPercent']);
-
- $classesNumber = $data['numTestedClasses'] . $numSeparator .
- $data['numClasses'];
-
- $classesBar = $this->getCoverageBar(
- $data['testedClassesPercent']
- );
- } else {
- $classesLevel = '';
- $classesNumber = '0' . $numSeparator . '0';
- $classesBar = '';
- $data['testedClassesPercentAsString'] = 'n/a';
- }
-
- if ($data['numMethods'] > 0) {
- $methodsLevel = $this->getColorLevel($data['testedMethodsPercent']);
-
- $methodsNumber = $data['numTestedMethods'] . $numSeparator .
- $data['numMethods'];
-
- $methodsBar = $this->getCoverageBar(
- $data['testedMethodsPercent']
- );
- } else {
- $methodsLevel = '';
- $methodsNumber = '0' . $numSeparator . '0';
- $methodsBar = '';
- $data['testedMethodsPercentAsString'] = 'n/a';
- }
-
- if ($data['numExecutableLines'] > 0) {
- $linesLevel = $this->getColorLevel($data['linesExecutedPercent']);
-
- $linesNumber = $data['numExecutedLines'] . $numSeparator .
- $data['numExecutableLines'];
-
- $linesBar = $this->getCoverageBar(
- $data['linesExecutedPercent']
- );
- } else {
- $linesLevel = '';
- $linesNumber = '0' . $numSeparator . '0';
- $linesBar = '';
- $data['linesExecutedPercentAsString'] = 'n/a';
- }
-
- $template->setVar(
- [
- 'icon' => isset($data['icon']) ? $data['icon'] : '',
- 'crap' => isset($data['crap']) ? $data['crap'] : '',
- 'name' => $data['name'],
- 'lines_bar' => $linesBar,
- 'lines_executed_percent' => $data['linesExecutedPercentAsString'],
- 'lines_level' => $linesLevel,
- 'lines_number' => $linesNumber,
- 'methods_bar' => $methodsBar,
- 'methods_tested_percent' => $data['testedMethodsPercentAsString'],
- 'methods_level' => $methodsLevel,
- 'methods_number' => $methodsNumber,
- 'classes_bar' => $classesBar,
- 'classes_tested_percent' => isset($data['testedClassesPercentAsString']) ? $data['testedClassesPercentAsString'] : '',
- 'classes_level' => $classesLevel,
- 'classes_number' => $classesNumber
- ]
- );
-
- return $template->render();
- }
-
- /**
- * @param \Text_Template $template
- * @param AbstractNode $node
- */
- protected function setCommonTemplateVariables(\Text_Template $template, AbstractNode $node)
- {
- $template->setVar(
- [
- 'id' => $node->getId(),
- 'full_path' => $node->getPath(),
- 'path_to_root' => $this->getPathToRoot($node),
- 'breadcrumbs' => $this->getBreadcrumbs($node),
- 'date' => $this->date,
- 'version' => $this->version,
- 'runtime' => $this->getRuntimeString(),
- 'generator' => $this->generator,
- 'low_upper_bound' => $this->lowUpperBound,
- 'high_lower_bound' => $this->highLowerBound
- ]
- );
- }
-
- protected function getBreadcrumbs(AbstractNode $node)
- {
- $breadcrumbs = '';
- $path = $node->getPathAsArray();
- $pathToRoot = [];
- $max = count($path);
-
- if ($node instanceof FileNode) {
- $max--;
- }
-
- for ($i = 0; $i < $max; $i++) {
- $pathToRoot[] = str_repeat('../', $i);
- }
-
- foreach ($path as $step) {
- if ($step !== $node) {
- $breadcrumbs .= $this->getInactiveBreadcrumb(
- $step,
- array_pop($pathToRoot)
- );
- } else {
- $breadcrumbs .= $this->getActiveBreadcrumb($step);
- }
- }
-
- return $breadcrumbs;
- }
-
- protected function getActiveBreadcrumb(AbstractNode $node)
- {
- $buffer = sprintf(
- ' Class | -Coverage | -
---|
Class | -CRAP | -
---|
Method | -Coverage | -
---|
Method | -CRAP | -
---|
- | Code Coverage |
- ||||||||
- | Lines |
- Functions and Methods |
- Classes and Traits |
-
- | Code Coverage |
- |||||||||
- | Classes and Traits |
- Functions and Methods |
- Lines |
-