93 lines
2.3 KiB
Perl
93 lines
2.3 KiB
Perl
#!/usr/bin/perl -w
|
|
|
|
use Test::More;
|
|
use strict;
|
|
|
|
BEGIN
|
|
{
|
|
plan tests => 15;
|
|
chdir 't' if -d 't';
|
|
use lib '../lib';
|
|
use_ok ("Graph::Easy") or die($@);
|
|
use_ok ("Graph::Easy::As_ascii") or die($@);
|
|
};
|
|
|
|
can_ok ("Graph::Easy", qw/
|
|
as_boxart
|
|
as_boxart_html
|
|
as_boxart_html_file
|
|
as_boxart_file
|
|
/);
|
|
|
|
#############################################################################
|
|
|
|
binmode STDERR, ':utf8';
|
|
# some of our strings are written in utf8
|
|
use utf8;
|
|
|
|
my $graph = Graph::Easy->new();
|
|
|
|
my ($bonn, $berlin, $edge) = $graph->add_edge ('Bonn', 'Berlin');
|
|
|
|
my $boxart = $graph->as_boxart();
|
|
|
|
like ($boxart, qr/Bonn/, 'contains Bonn');
|
|
like ($boxart, qr/Berlin/, 'contains Berlin');
|
|
unlike ($boxart, qr/-/, "doesn't contain '-'");
|
|
|
|
#############################################################################
|
|
# border tests
|
|
|
|
$berlin->set_attribute('border-style', 'dotted');
|
|
|
|
#############################################################################
|
|
# arrow tests
|
|
|
|
my $open = '──>';
|
|
my $closed = '──▷';
|
|
my $filled = '──▶';
|
|
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$open/, 'contains edge with open arrow');
|
|
|
|
$edge->set_attribute('arrow-style', 'open');
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$open/, 'contains edge with open arrow');
|
|
|
|
$edge->set_attribute('arrow-style', 'closed');
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$closed/, 'contains edge with closed arrow');
|
|
|
|
$edge->set_attribute('arrow-style', 'filled');
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$filled/, 'contains edge with filled arrow');
|
|
|
|
#############################################################################
|
|
# arrow tests with dotted lines
|
|
|
|
$open = "··>";
|
|
$closed = '··▷';
|
|
$filled = '··▶';
|
|
|
|
$edge->set_attribute('style', 'dotted');
|
|
$edge->del_attribute('arrow-style');
|
|
|
|
is ($edge->style(), 'dotted', 'edge is now dotted');
|
|
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$open/, 'contains edge with open arrow');
|
|
|
|
$edge->set_attribute('arrow-style', 'open');
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$open/, 'contains edge with open arrow');
|
|
|
|
$edge->set_attribute('arrow-style', 'closed');
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$closed/, 'contains edge with closed arrow');
|
|
|
|
$edge->set_attribute('arrow-style', 'filled');
|
|
$boxart = $graph->as_boxart();
|
|
like ($boxart, qr/$filled/, 'contains edge with filled arrow');
|
|
|
|
|