#!/usr/bin/perl -w
use Test::More tests => 4;
use strict;
BEGIN {
$|++;
use_ok('Graph::Directed');
}
package Dummy;
sub new {
my ($class) = @_;
return bless {},$class;
}
sub test {
return unless ref($_[0]);
return unless $_[0]->isa("Dummy");
return 1;
}
package main;
my $G = Graph::Directed->new();
ok ($G->isa("Graph::Directed"),"Graph instance");
my $d1 = Dummy->new;
my $d2 = Dummy->new;
$G->add_edge("$d1","$d2");
$G->set_vertex_attribute("$d1",'object',$d1);
$G->set_vertex_attribute("$d2",'object',$d2);
my @d = eval {
grep { $G->get_vertex_attribute("$_",'object')->test } $G->toposort();
};
ok (!$@,"Objects as attributes");
ok( @d == 2,"Objects as attributes2");