You are here

Node.php in Zircon Profile 8.0

File

vendor/phpunit/php-code-coverage/src/CodeCoverage/Report/Node.php
View source
<?php

/*
 * This file is part of the PHP_CodeCoverage package.
 *
 * (c) Sebastian Bergmann <sebastian@phpunit.de>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/**
 * Base class for nodes in the code coverage information tree.
 *
 * @since Class available since Release 1.1.0
 */
abstract class PHP_CodeCoverage_Report_Node implements Countable {

  /**
   * @var string
   */
  protected $name;

  /**
   * @var string
   */
  protected $path;

  /**
   * @var array
   */
  protected $pathArray;

  /**
   * @var PHP_CodeCoverage_Report_Node
   */
  protected $parent;

  /**
   * @var string
   */
  protected $id;

  /**
   * Constructor.
   *
   * @param string                       $name
   * @param PHP_CodeCoverage_Report_Node $parent
   */
  public function __construct($name, PHP_CodeCoverage_Report_Node $parent = null) {
    if (substr($name, -1) == '/') {
      $name = substr($name, 0, -1);
    }
    $this->name = $name;
    $this->parent = $parent;
  }

  /**
   * @return string
   */
  public function getName() {
    return $this->name;
  }

  /**
   * @return string
   */
  public function getId() {
    if ($this->id === null) {
      $parent = $this
        ->getParent();
      if ($parent === null) {
        $this->id = 'index';
      }
      else {
        $parentId = $parent
          ->getId();
        if ($parentId == 'index') {
          $this->id = str_replace(':', '_', $this->name);
        }
        else {
          $this->id = $parentId . '/' . $this->name;
        }
      }
    }
    return $this->id;
  }

  /**
   * @return string
   */
  public function getPath() {
    if ($this->path === null) {
      if ($this->parent === null || $this->parent
        ->getPath() === null || $this->parent
        ->getPath() === false) {
        $this->path = $this->name;
      }
      else {
        $this->path = $this->parent
          ->getPath() . '/' . $this->name;
      }
    }
    return $this->path;
  }

  /**
   * @return array
   */
  public function getPathAsArray() {
    if ($this->pathArray === null) {
      if ($this->parent === null) {
        $this->pathArray = array();
      }
      else {
        $this->pathArray = $this->parent
          ->getPathAsArray();
      }
      $this->pathArray[] = $this;
    }
    return $this->pathArray;
  }

  /**
   * @return PHP_CodeCoverage_Report_Node
   */
  public function getParent() {
    return $this->parent;
  }

  /**
   * Returns the percentage of classes that has been tested.
   *
   * @param  bool $asString
   * @return int
   */
  public function getTestedClassesPercent($asString = true) {
    return PHP_CodeCoverage_Util::percent($this
      ->getNumTestedClasses(), $this
      ->getNumClasses(), $asString);
  }

  /**
   * Returns the percentage of traits that has been tested.
   *
   * @param  bool $asString
   * @return int
   */
  public function getTestedTraitsPercent($asString = true) {
    return PHP_CodeCoverage_Util::percent($this
      ->getNumTestedTraits(), $this
      ->getNumTraits(), $asString);
  }

  /**
   * Returns the percentage of traits that has been tested.
   *
   * @param  bool $asString
   * @return int
   * @since  Method available since Release 1.2.0
   */
  public function getTestedClassesAndTraitsPercent($asString = true) {
    return PHP_CodeCoverage_Util::percent($this
      ->getNumTestedClassesAndTraits(), $this
      ->getNumClassesAndTraits(), $asString);
  }

  /**
   * Returns the percentage of methods that has been tested.
   *
   * @param  bool $asString
   * @return int
   */
  public function getTestedMethodsPercent($asString = true) {
    return PHP_CodeCoverage_Util::percent($this
      ->getNumTestedMethods(), $this
      ->getNumMethods(), $asString);
  }

  /**
   * Returns the percentage of executed lines.
   *
   * @param  bool $asString
   * @return int
   */
  public function getLineExecutedPercent($asString = true) {
    return PHP_CodeCoverage_Util::percent($this
      ->getNumExecutedLines(), $this
      ->getNumExecutableLines(), $asString);
  }

  /**
   * Returns the number of classes and traits.
   *
   * @return int
   * @since  Method available since Release 1.2.0
   */
  public function getNumClassesAndTraits() {
    return $this
      ->getNumClasses() + $this
      ->getNumTraits();
  }

  /**
   * Returns the number of tested classes and traits.
   *
   * @return int
   * @since  Method available since Release 1.2.0
   */
  public function getNumTestedClassesAndTraits() {
    return $this
      ->getNumTestedClasses() + $this
      ->getNumTestedTraits();
  }

  /**
   * Returns the classes and traits of this node.
   *
   * @return array
   * @since  Method available since Release 1.2.0
   */
  public function getClassesAndTraits() {
    return array_merge($this
      ->getClasses(), $this
      ->getTraits());
  }

  /**
   * Returns the classes of this node.
   *
   * @return array
   */
  public abstract function getClasses();

  /**
   * Returns the traits of this node.
   *
   * @return array
   */
  public abstract function getTraits();

  /**
   * Returns the functions of this node.
   *
   * @return array
   */
  public abstract function getFunctions();

  /**
   * Returns the LOC/CLOC/NCLOC of this node.
   *
   * @return array
   */
  public abstract function getLinesOfCode();

  /**
   * Returns the number of executable lines.
   *
   * @return int
   */
  public abstract function getNumExecutableLines();

  /**
   * Returns the number of executed lines.
   *
   * @return int
   */
  public abstract function getNumExecutedLines();

  /**
   * Returns the number of classes.
   *
   * @return int
   */
  public abstract function getNumClasses();

  /**
   * Returns the number of tested classes.
   *
   * @return int
   */
  public abstract function getNumTestedClasses();

  /**
   * Returns the number of traits.
   *
   * @return int
   */
  public abstract function getNumTraits();

  /**
   * Returns the number of tested traits.
   *
   * @return int
   */
  public abstract function getNumTestedTraits();

  /**
   * Returns the number of methods.
   *
   * @return int
   */
  public abstract function getNumMethods();

  /**
   * Returns the number of tested methods.
   *
   * @return int
   */
  public abstract function getNumTestedMethods();

  /**
   * Returns the number of functions.
   *
   * @return int
   */
  public abstract function getNumFunctions();

  /**
   * Returns the number of tested functions.
   *
   * @return int
   */
  public abstract function getNumTestedFunctions();

}

Classes

Namesort descending Description
PHP_CodeCoverage_Report_Node Base class for nodes in the code coverage information tree.