$ cat graph.t #!/usr/bin/env perl use strict; use warnings; use Graph; use Test::More qw( no_plan ); my @vertices = qw( Jolt Lord Tornado ); my $g = Graph->new(vertices => [ @vertices ]); ok(defined $g, "Constructor returned defined value"); isa_ok($g, 'Graph'); for my $v (@vertices) { ok($g->has_vertex($v), "vertex $v"); } my @edges = ( [ 'Tornado' => 'Jolt' ], [ 'Tornado' => 'Lord' ], ); for my $e (@edges) { ok($g->add_edge(@{$e}), sprintf("Add edge %-12s -> %s", @{$e})); } #### $ prove -v graph.t graph.t .. ok 1 - Constructor returned defined value ok 2 - An object of class 'Graph' isa 'Graph' ok 3 - vertex Jolt ok 4 - vertex Lord ok 5 - vertex Tornado ok 6 - Add edge Tornado -> Jolt ok 7 - Add edge Tornado -> Lord 1..7 ok All tests successful. Files=1, Tests=7, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.11 cusr 0.00 csys = 0.13 CPU) Result: PASS #### ok(! $g->add_edge( 'Lord' => 'Tornado '), "I expect that I cannot add Lord -> Tornado edge"); #### $ prove -v graph.t graph.t .. ok 1 - Constructor returned defined value ok 2 - An object of class 'Graph' isa 'Graph' ok 3 - vertex Jolt ok 4 - vertex Lord ok 5 - vertex Tornado ok 6 - Add edge Tornado -> Jolt ok 7 - Add edge Tornado -> Lord not ok 8 - I expect that I cannot add Lord -> Tornado edge # Failed test 'I expect that I cannot add Lord -> Tornado edge' # at graph.t line 23. 1..8 # Looks like you failed 1 test of 8. Dubious, test returned 1 (wstat 256, 0x100) Failed 1/8 subtests Test Summary Report ------------------- graph.t (Wstat: 256 Tests: 8 Failed: 1) Failed test: 8 Non-zero exit status: 1 Files=1, Tests=8, 0 wallclock secs ( 0.01 usr 0.01 sys + 0.11 cusr 0.00 csys = 0.13 CPU) Result: FAIL