IG12Test   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 5
dl 0
loc 59
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 27 2
A testBuild() 0 25 1
1
<?php
2
3
/**
4
 * @file
5
 * Grafizzi\Graph\Tests\IG12Test: 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\Attribute;
27
use Grafizzi\Graph\Edge;
28
use Grafizzi\Graph\Node;
29
30
require 'vendor/autoload.php';
31
32
/**
33
 * A recreation of Image_GraphViz test12.phpt
34
 *
35
 * Image_GraphViz version author: Philippe Jausions <[email protected]>
36
 *
37
 * Test 12: "Graph of binary search tree"
38
 *
39
 * "Graph definition taken from GraphViz documentation"
40
 */
41
class IG12Test extends BaseGraphTest {
42
43
  public function setUp() : void {
44
    // not strict by default.
45
    parent::setUpExtended('structs');
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...
46
    $g = $this->Graph;
47
    $dic = $this->dic;
48
    $g->setDirected(true);
49
    $letters = array('G', 'E', 'B', 'F', 'R', 'H', 'Y', 'A', 'C');
50
51
    $nodeShape = new Attribute($dic, 'shape', 'record');
52
    $nodes = array();
53
    foreach ($letters as $offset => $letter) {
54
      $g->addChild($nodes[$offset] = new Node($dic, "node$offset", array(
55
        $nodeShape,
56
        new Attribute($dic, 'label', "<f0> |<f1> $letter|<f2> "),
57
      )));
58
    }
59
60
    $edgeAttributes = array();
61
    $g->addChild(new Edge($dic, $nodes[0], $nodes[4], $edgeAttributes, 'f2', 'f1'));
62
    $g->addChild(new Edge($dic, $nodes[0], $nodes[1], $edgeAttributes, 'f0', 'f1'));
63
    $g->addChild(new Edge($dic, $nodes[1], $nodes[2], $edgeAttributes, 'f0', 'f1'));
64
    $g->addChild(new Edge($dic, $nodes[1], $nodes[3], $edgeAttributes, 'f2', 'f1'));
65
    $g->addChild(new Edge($dic, $nodes[2], $nodes[8], $edgeAttributes, 'f2', 'f1'));
66
    $g->addChild(new Edge($dic, $nodes[2], $nodes[7], $edgeAttributes, 'f0', 'f1'));
67
    $g->addChild(new Edge($dic, $nodes[4], $nodes[6], $edgeAttributes, 'f2', 'f1'));
68
    $g->addChild(new Edge($dic, $nodes[4], $nodes[5], $edgeAttributes, 'f0', 'f1'));
69
  }
70
71
  /**
72
   * Tests Graph->build()
73
   */
74
  public function testBuild() {
75
    $expected = <<<EOT
76
digraph structs {
77
  node0 [ shape=record, label="<f0> |<f1> G|<f2> " ];
78
  node1 [ shape=record, label="<f0> |<f1> E|<f2> " ];
79
  node2 [ shape=record, label="<f0> |<f1> B|<f2> " ];
80
  node3 [ shape=record, label="<f0> |<f1> F|<f2> " ];
81
  node4 [ shape=record, label="<f0> |<f1> R|<f2> " ];
82
  node5 [ shape=record, label="<f0> |<f1> H|<f2> " ];
83
  node6 [ shape=record, label="<f0> |<f1> Y|<f2> " ];
84
  node7 [ shape=record, label="<f0> |<f1> A|<f2> " ];
85
  node8 [ shape=record, label="<f0> |<f1> C|<f2> " ];
86
  node0:f2 -> node4:f1;
87
  node0:f0 -> node1:f1;
88
  node1:f0 -> node2:f1;
89
  node1:f2 -> node3:f1;
90
  node2:f2 -> node8:f1;
91
  node2:f0 -> node7:f1;
92
  node4:f2 -> node6:f1;
93
  node4:f0 -> node5:f1;
94
} /* /digraph structs */
95
96
EOT;
97
    $this->check($expected, "Image_GraphViz test 12 passed.");
98
  }
99
}
100