Example #1
0
 public function testGraphIrregular()
 {
     // 1 -> 2 -> 3
     $graph = new Graph();
     $v1 = $graph->createVertex(1);
     $v2 = $graph->createVertex(2);
     $v3 = $graph->createVertex(3);
     $v1->createEdgeTo($v2);
     $v2->createEdgeTo($v3);
     $alg = new AlgorithmDegree($graph);
     try {
         $this->assertEquals(0, $alg->getDegree());
         $this->fail();
     } catch (UnexpectedValueException $e) {
     }
     $this->assertEquals(1, $alg->getDegreeMin());
     $this->assertEquals(2, $alg->getDegreeMax());
     $this->assertFalse($alg->isRegular());
     $this->assertFalse($alg->isBalanced());
     $this->assertEquals(0, $alg->getDegreeInVertex($v1));
     $this->assertEquals(1, $alg->getDegreeOutVertex($v1));
     $this->assertEquals(1, $alg->getDegreeVertex($v1));
     $this->assertFalse($alg->isVertexIsolated($v1));
     $this->assertFalse($alg->isVertexSink($v1));
     $this->assertTrue($alg->isVertexSource($v1));
     $this->assertEquals(1, $alg->getDegreeInVertex($v2));
     $this->assertEquals(1, $alg->getDegreeOutVertex($v2));
     $this->assertEquals(2, $alg->getDegreeVertex($v2));
     $this->assertFalse($alg->isVertexIsolated($v2));
     $this->assertFalse($alg->isVertexSink($v2));
     $this->assertFalse($alg->isVertexSource($v2));
     $this->assertEquals(1, $alg->getDegreeInVertex($v3));
     $this->assertEquals(0, $alg->getDegreeOutVertex($v3));
     $this->assertEquals(1, $alg->getDegreeVertex($v3));
     $this->assertFalse($alg->isVertexIsolated($v3));
     $this->assertTrue($alg->isVertexSink($v3));
     $this->assertFalse($alg->isVertexSource($v3));
 }