Exemple #1
0
 /**
  * @inheritdoc
  */
 public function generateAdjacentNodes(Node $node)
 {
     $adjacentNodes = array();
     $myNode = MyNode::fromNode($node);
     if ($myNode->getRow() == 0) {
         $startingRow = 0;
     } else {
         $startingRow = $myNode->getRow() - 1;
     }
     if ($myNode->getRow() == $this->terrainCost->getTotalRows() - 1) {
         $endingRow = $myNode->getRow();
     } else {
         $endingRow = $myNode->getRow() + 1;
     }
     if ($myNode->getColumn() == 0) {
         $startingColumn = 0;
     } else {
         $startingColumn = $myNode->getColumn() - 1;
     }
     if ($myNode->getColumn() == $this->terrainCost->getTotalColumns() - 1) {
         $endingColumn = $myNode->getColumn();
     } else {
         $endingColumn = $myNode->getColumn() + 1;
     }
     for ($row = $startingRow; $row <= $endingRow; $row++) {
         for ($column = $startingColumn; $column <= $endingColumn; $column++) {
             $adjacentNode = new MyNode($row, $column);
             if ($adjacentNode->getID() !== $myNode->getID()) {
                 $adjacentNodes[] = $adjacentNode;
             }
         }
     }
     return $adjacentNodes;
 }
Exemple #2
0
 /**
  * @param MyNode $needle
  * @param MyNode[] $haystack
  */
 private function assertContainsMyNode(MyNode $needle, array $haystack)
 {
     foreach ($haystack as $node) {
         if ($needle->getID() === $node->getID()) {
             return;
         }
     }
     $this->fail('Failed asserting that the array ' . print_r($haystack, true) . 'contains the specified node ' . print_r($needle, true));
 }
Exemple #3
0
 /**
  * @dataProvider validPointProvider
  */
 public function testShouldGenerateAnID($row, $column)
 {
     $expectedID = $row . 'x' . $column;
     $sut = new MyNode($row, $column);
     $this->assertSame($expectedID, $sut->getID());
 }