예제 #1
0
 public function testDirected()
 {
     $n = 8;
     $loader = new CompleteGraph($n);
     $loader->setEnableDirectedEdges(true);
     $graph = $loader->createGraph();
     $this->assertEquals($n, count($graph->getVertices()));
     $this->assertEquals($n * ($n - 1), count($graph->getEdges()));
     // n*(n-1) for directed graphs
     $alg = new Directed($graph);
     $this->assertTrue($alg->hasDirected());
     $alg = new Complete($graph);
     $this->assertTrue($alg->isComplete());
 }
예제 #2
0
 public function testAdditionalEdgesToNotAffectCompleteness()
 {
     // 1 -> 2
     // 1 -- 2
     // 2 -> 1
     // 1 -> 1
     $graph = new Graph();
     $graph->createVertex(1)->createEdgeTo($graph->createVertex(2));
     $graph->getVertex(1)->createEdge($graph->getVertex(2));
     $graph->getVertex(2)->createEdgeTo($graph->getVertex(1));
     $graph->getVertex(1)->createEdgeTo($graph->getVertex(1));
     $alg = new AlgorithmComplete($graph);
     $this->assertTrue($alg->isComplete());
 }