/** * @expectedException InvalidArgumentException */ public function testInvalidVertexPassedToAlgorithm() { $graph = new Graph(); $graph2 = new Graph(); $v2 = $graph2->createVertex(12); $alg = new AlgorithmConnected($graph); $alg->createGraphComponentVertex($v2); }
/** * check whether this graph has an eulerian cycle * * @return boolean * @uses ConnectedComponents::isSingle() * @uses Degree::getDegreeVertex() * @todo isolated vertices should be ignored * @todo definition is only valid for undirected graphs */ public function hasCycle() { $components = new ConnectedComponents($this->graph); if ($components->isSingle()) { $alg = new Degree($this->graph); foreach ($this->graph->getVertices() as $vertex) { // uneven degree => fail if ($alg->getDegreeVertex($vertex) & 1) { return false; } } return true; } return false; }
private function disconnectGraph() { $components = new ConnectedComponents($this->graph); $this->disconnections = $components->createGraphsComponents(); }