/** * @covers \Gliph\Traversal\DepthFirst::toposort * @expectedException Gliph\Exception\RuntimeException * Thrown by the visitor after adding a cycle to the graph. */ public function testToposort() { extract($this->v); $this->assertEquals(array($c, $d, $b, $a), DepthFirst::toposort($this->g, $a)); $this->g->addDirectedEdge($d, $a); DepthFirst::toposort($this->g, $a); }
/** * {@inheritdoc} */ public function isAcyclic() { // The DepthFirstToposortVisitor throws an exception on cycles. try { DepthFirst::traverse($this, new DepthFirstToposortVisitor()); return TRUE; } catch (RuntimeException $e) { return FALSE; } }
public function testReachableExceptionOnUnknownVertex() { DepthFirst::traverse($this->g, $this->vis, $this->v['a']); $this->assertFalse($this->vis->getReachable($this->v['e'])); }