IG01Test::testBuild()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.584
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/**
4
 * @file
5
 * Grafizzi\Graph\Tests\IG01Test: a component of the Grafizzi library.
6
 *
7
 * (c) 2012 Frédéric G. MARAND <[email protected]>
8
 *
9
 * Grafizzi is free software: you can redistribute it and/or modify it under the
10
 * terms of the GNU Lesser General Public License as published by the Free
11
 * Software Foundation, either version 3 of the License, or (at your option) any
12
 * later version.
13
 *
14
 * Grafizzi is distributed in the hope that it will be useful, but WITHOUT ANY
15
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
16
 * A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
17
 * details.
18
 *
19
 * You should have received a copy of the GNU Lesser General Public License
20
 * along with Grafizzi, in the COPYING.LESSER.txt file.  If not, see
21
 * <http://www.gnu.org/licenses/>
22
 */
23
24
namespace Grafizzi\Graph\Tests;
25
26
use Grafizzi\Graph\Edge;
27
use Grafizzi\Graph\Node;
28
29
require 'vendor/autoload.php';
30
31
/**
32
 * A recreation of Image_GraphViz test1.phpt
33
 *
34
 * Image_GraphViz version author: Philippe Jausions <[email protected]>
35
 *
36
 * Test 1: "Process States in an Operating System Kernel"
37
 *
38
 * Graph definition taken from Neato documentation, fig. 1 p. 3
39
 * "Drawing graphs with NEATO" / Stephen C. North / April 26, 2004
40
 */
41
class IG01Test extends BaseGraphTest {
42
43
  public function setUp() : void {
44
    parent::setUpExtended();
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (setUpExtended() instead of setUp()). Are you sure this is correct? If so, you might want to change this to $this->setUpExtended().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
45
    $this->Graph->setDirected(false);
46
    $edgeDefinitions = array(
47
      array('run', 'intr'),
48
      array('run', 'kernel'),
49
      array('intr', 'runbl'),
50
      array('runbl', 'run'),
51
      array('kernel', 'zombie'),
52
      array('kernel', 'sleep'),
53
      array('kernel', 'runmem'),
54
      array('sleep', 'swap'),
55
      array('sleep', 'runmem'),
56
      array('swap', 'runswap'),
57
      array('runswap', 'new'),
58
      array('runswap', 'runmem'),
59
      array('new', 'runmem'),
60
    );
61
    foreach ($edgeDefinitions as $edgeDefinition) {
62
      list($src, $dst) = $edgeDefinition;
63
      $this->Graph->logger->debug("Adding edge $src -- $dst");
64
      $srcNode = new Node($this->dic, $src, Node::implicit());
65
      $this->Graph->addChild($srcNode);
66
      $dstNode = new Node($this->dic, $dst, Node::implicit());
67
      $this->Graph->addChild($dstNode);
68
      $edge = new Edge($this->dic, $srcNode, $dstNode);
69
      $this->Graph->addChild($edge);
70
    }
71
  }
72
73
  /**
74
   * Tests Graph->build()
75
   */
76
  public function testBuild() {
77
    $expected = <<<EOT
78
graph G {
79
  run -- intr;
80
  run -- kernel;
81
  intr -- runbl;
82
  runbl -- run;
83
  kernel -- zombie;
84
  kernel -- sleep;
85
  kernel -- runmem;
86
  sleep -- swap;
87
  sleep -- runmem;
88
  swap -- runswap;
89
  runswap -- new;
90
  runswap -- runmem;
91
  new -- runmem;
92
} /* /graph G */
93
94
EOT;
95
    $this->check($expected, "Image_GraphViz test 1 passed.");
96
  }
97
}
98