113 lines
2.3 KiB
Perl
113 lines
2.3 KiB
Perl
#!/usr/bin/perl -w
|
|
|
|
# test layouts after setting attributes
|
|
use Test::More;
|
|
use strict;
|
|
|
|
BEGIN
|
|
{
|
|
plan tests => 12;
|
|
chdir 't' if -d 't';
|
|
use lib '../lib';
|
|
use_ok ("Graph::Easy") or die($@);
|
|
};
|
|
|
|
can_ok ('Graph::Easy', qw/
|
|
new
|
|
/);
|
|
|
|
#############################################################################
|
|
# setup a graph
|
|
|
|
my $graph = Graph::Easy->new();
|
|
|
|
is (ref($graph), 'Graph::Easy');
|
|
|
|
is ($graph->error(), '', 'no error yet');
|
|
|
|
my ($bonn,$berlin,$edge) = $graph->add_edge('Bonn','Berlin');
|
|
|
|
#############################################################################
|
|
# lay out as ascii
|
|
|
|
my $ascii = $graph->as_ascii();
|
|
|
|
is ($ascii, <<EOF
|
|
+------+ +--------+
|
|
| Bonn | --> | Berlin |
|
|
+------+ +--------+
|
|
EOF
|
|
, 'as_ascii');
|
|
|
|
#############################################################################
|
|
# change label of Bonn to be longer
|
|
|
|
$bonn->set_attribute('label', 'Frankfurt a. Main');
|
|
|
|
$ascii = $graph->as_ascii();
|
|
|
|
is ($ascii, <<EOF
|
|
+-------------------+ +--------+
|
|
| Frankfurt a. Main | --> | Berlin |
|
|
+-------------------+ +--------+
|
|
EOF
|
|
, 'as_ascii');
|
|
|
|
$bonn->set_attribute('label', 'Frankfurt\n(a. Main)');
|
|
$ascii = $graph->as_ascii();
|
|
|
|
is ($ascii, <<EOF
|
|
+-----------+ +--------+
|
|
| Frankfurt | | Berlin |
|
|
| (a. Main) | --> | |
|
|
+-----------+ +--------+
|
|
EOF
|
|
, 'as_ascii');
|
|
|
|
# Change label of Bonn to be shorter (and one line high, this also tests
|
|
# resetting the height of Berlin even though we did not change an attribute
|
|
# on Berlin itself:
|
|
|
|
$bonn->set_attribute('label', 'Frankfurt');
|
|
|
|
$ascii = $graph->as_ascii();
|
|
|
|
is ($ascii, <<EOF
|
|
+-----------+ +--------+
|
|
| Frankfurt | --> | Berlin |
|
|
+-----------+ +--------+
|
|
EOF
|
|
, 'as_ascii');
|
|
|
|
is ($bonn->{w}, 13, 'w is 13');
|
|
is ($bonn->{h}, 3, 'h is 2');
|
|
|
|
#############################################################################
|
|
# change edge label
|
|
|
|
$edge->set_attribute('label', 'Test');
|
|
|
|
$ascii = $graph->as_ascii();
|
|
|
|
is ($ascii, <<EOF
|
|
+-----------+ Test +--------+
|
|
| Frankfurt | ------> | Berlin |
|
|
+-----------+ +--------+
|
|
EOF
|
|
, 'as_ascii');
|
|
|
|
$edge->set_attribute('label', 'Testtest');
|
|
|
|
$ascii = $graph->as_ascii();
|
|
|
|
is ($ascii, <<EOF
|
|
+-----------+ Testtest +--------+
|
|
| Frankfurt | ----------> | Berlin |
|
|
+-----------+ +--------+
|
|
EOF
|
|
, 'as_ascii');
|
|
|
|
#############################################################################
|
|
|
|
|