1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
use Graph;
use Test::More tests => 1;
eval 'require Devel::Cycle';
SKIP: {
skip("no Devel::Cycle", 1) if $@;
import Devel::Cycle;
my $g = Graph->new;
$g->add_edge(qw(a b));
$g->add_edge(qw(b c));
$g->add_edge(qw(c d));
$g->add_edge(qw(c e));
$g->add_cycle(qw(e f g)); # This is not a true cycle if weakrefs work.
my $out = tie *STDOUT, 'FakeOut';
find_cycle($g);
is($$out, undef);
}
package FakeOut;
sub TIEHANDLE {
bless(\(my $text), $_[0]);
}
sub PRINT {
my $self = shift;
$$self .= join('', @_);
}
|