70 lines
1.5 KiB
Perl
70 lines
1.5 KiB
Perl
#!/usr/bin/perl -w
|
|
|
|
# test interface being compatible to Graph.pm so that Graph::Maker works:
|
|
use Test::More;
|
|
use strict;
|
|
|
|
BEGIN
|
|
{
|
|
plan tests => 15;
|
|
chdir 't' if -d 't';
|
|
use lib '../lib';
|
|
use_ok ("Graph::Easy") or die($@);
|
|
};
|
|
|
|
can_ok ('Graph::Easy', qw/
|
|
new
|
|
|
|
add_vertex
|
|
add_vertices
|
|
has_edge
|
|
vertices
|
|
add_path
|
|
add_cycle
|
|
/);
|
|
|
|
#############################################################################
|
|
my $graph = Graph::Easy->new();
|
|
|
|
is (ref($graph), 'Graph::Easy');
|
|
|
|
is ($graph->error(), '', 'no error yet');
|
|
|
|
$graph->add_vertex('A');
|
|
my $A = $graph->node('A');
|
|
|
|
is (scalar $graph->vertices(), 1, '1 vertex');
|
|
my @nodes = $graph->vertices();
|
|
is ($nodes[0], $A, '1 vertex');
|
|
|
|
my $edge = $graph->add_edge ('A', 'B');
|
|
|
|
is ($graph->has_edge('A','B'), 1, 'has_edge()');
|
|
is ($graph->has_edge($A,'B'), 1, 'has_edge()');
|
|
is ($graph->has_edge('C','B'), 0, 'has_edge()');
|
|
|
|
$graph->add_vertices('A','B','C');
|
|
is (scalar $graph->vertices(), 3, '3 vertices');
|
|
|
|
$graph->set_vertex_attribute('A','fill','#deadff');
|
|
|
|
my $atr = $graph->get_vertex_attribute('A','fill');
|
|
|
|
is ($atr, $A->attribute('fill'), 'attribute got set');
|
|
|
|
#############################################################################
|
|
## add_cycle and add_path
|
|
#
|
|
|
|
$graph = Graph::Easy->new();
|
|
$graph->add_path('A','B','C');
|
|
is (scalar $graph->vertices(), 3, '3 vertices');
|
|
is (scalar $graph->edges(), 2, '2 vertices');
|
|
|
|
$graph = Graph::Easy->new();
|
|
$graph->add_cycle('A','B','C');
|
|
is (scalar $graph->vertices(), 3, '3 vertices');
|
|
is (scalar $graph->edges(), 3, '3 vertices');
|
|
|
|
|