Example #1
0
 public function testShouldGetDirectSuccessors()
 {
     $nodeA = new MyNode(0, 0);
     $nodeB = new MyNode(1, 1);
     $nodeC = new MyNode(2, 2);
     $nodeD = new MyNode(3, 3);
     $distance = 1;
     $this->sut->addLink(new Link($nodeA, $nodeB, $distance));
     $this->sut->addLink(new Link($nodeA, $nodeC, $distance));
     $this->sut->addLink(new Link($nodeB, $nodeD, $distance));
     $nodeADirectSuccessors = $this->sut->getDirectSuccessors($nodeA);
     $nodeBDirectSuccessors = $this->sut->getDirectSuccessors($nodeB);
     $nodeCDirectSuccessors = $this->sut->getDirectSuccessors($nodeC);
     $nodeDDirectSuccessors = $this->sut->getDirectSuccessors($nodeD);
     $this->assertCount(2, $nodeADirectSuccessors);
     $this->assertCount(1, $nodeBDirectSuccessors);
     $this->assertCount(0, $nodeCDirectSuccessors);
     $this->assertCount(0, $nodeDDirectSuccessors);
     foreach ($nodeADirectSuccessors as $successor) {
         $this->assertTrue($successor->getID() === $nodeB->getID() || $successor->getID() === $nodeC->getID());
     }
     $this->assertSame($nodeD->getID(), $nodeBDirectSuccessors[0]->getID());
 }