Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
9 / 9
CRAP
100.00% covered (success)
100.00%
12 / 12
Algorithm
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
9 / 9
9
100.00% covered (success)
100.00%
12 / 12
 __construct(Graph $g)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 addEdge(Vertex $source, Vertex $target)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 addVertex(Vertex $v)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getEdgeSet()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getVertexSet()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 searchEdge(Vertex $source, Vertex $target)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getSuccessor(Vertex $v)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getEdgeIterator(Vertex $v)
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getPartition()
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
<?php
/*
 * Mondrian
 */
namespace Trismegiste\Mondrian\Graph;
/**
 * Design pattern: Decorator
 * Component : Decorator
 *
 * Algorithm is an algorithm on Graph. This class does nothing except
 * wrapping the graph. It is intended to avoid copy/paste of this content
 * for real algorithms. See it as a default implementation. Therefore
 * you only need to subclass this decorator and add your methods.
 *
 * It is not abstract since I want to test it but the spirit is :)
 *
 * @todo Make it abstract and use mockup to test it by Hell !
 */
class Algorithm implements Graph
{
    protected $graph;
    /**
     * Decorates the graph
     *
     * @param Graph $g
     */
    public function __construct(Graph $g)
    {
        $this->graph = $g;
    }
    public function addEdge(Vertex $source, Vertex $target)
    {
        $this->graph->addEdge($source, $target);
    }
    public function addVertex(Vertex $v)
    {
        $this->graph->addVertex($v);
    }
    public function getEdgeSet()
    {
        return $this->graph->getEdgeSet();
    }
    public function getVertexSet()
    {
        return $this->graph->getVertexSet();
    }
    public function searchEdge(Vertex $source, Vertex $target)
    {
        return $this->graph->searchEdge($source, $target);
    }
    public function getSuccessor(Vertex $v)
    {
        return $this->graph->getSuccessor($v);
    }
    /**
     * {@inheritDoc}
     */
    public function getEdgeIterator(Vertex $v)
    {
        return $this->graph->getEdgeIterator($v);
    }
    /**
     * {@inheritDoc}
     */
    public function getPartition()
    {
        return $this->graph->getPartition();
    }
}