#!/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');