--TEST-- Unit test for graph with ports --FILE-- */ require_once 'Image/GraphViz.php'; $graph = new Image_GraphViz(true, array(), 'structs', false); $graph->addNode('node0', array('shape' => 'record', 'label' => ' | G| ')); $graph->addNode('node1', array('shape' => 'record', 'label' => ' | E| ')); $graph->addNode('node2', array('shape' => 'record', 'label' => ' | B| ')); $graph->addNode('node3', array('shape' => 'record', 'label' => ' | F| ')); $graph->addNode('node4', array('shape' => 'record', 'label' => ' | R| ')); $graph->addNode('node5', array('shape' => 'record', 'label' => ' | H| ')); $graph->addNode('node6', array('shape' => 'record', 'label' => ' | Y| ')); $graph->addNode('node7', array('shape' => 'record', 'label' => ' | A| ')); $graph->addNode('node8', array('shape' => 'record', 'label' => ' | C| ')); $graph->addEdge(array('node0' => 'node4'), null, array('node0' => 'f2', 'node4' => 'f1')); $graph->addEdge(array('node0' => 'node1'), null, array('node0' => 'f0', 'node1' => 'f1')); $graph->addEdge(array('node1' => 'node2'), null, array('node1' => 'f0', 'node2' => 'f1')); $graph->addEdge(array('node1' => 'node3'), null, array('node1' => 'f2', 'node3' => 'f1')); $graph->addEdge(array('node2' => 'node8'), null, array('node2' => 'f2', 'node8' => 'f1')); $graph->addEdge(array('node2' => 'node7'), null, array('node2' => 'f0', 'node7' => 'f1')); $graph->addEdge(array('node4' => 'node6'), null, array('node4' => 'f2', 'node6' => 'f1')); $graph->addEdge(array('node4' => 'node5'), null, array('node4' => 'f0', 'node5' => 'f1')); echo $graph->parse(); ?> --EXPECT-- digraph structs { node0 [ shape=record,label=" | G| " ]; node1 [ shape=record,label=" | E| " ]; node2 [ shape=record,label=" | B| " ]; node3 [ shape=record,label=" | F| " ]; node4 [ shape=record,label=" | R| " ]; node5 [ shape=record,label=" | H| " ]; node6 [ shape=record,label=" | Y| " ]; node7 [ shape=record,label=" | A| " ]; node8 [ shape=record,label=" | C| " ]; node0:f2 -> node4:f1; node0:f0 -> node1:f1; node1:f0 -> node2:f1; node1:f2 -> node3:f1; node2:f2 -> node8:f1; node2:f0 -> node7:f1; node4:f2 -> node6:f1; node4:f0 -> node5:f1; }