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 30 31 32 33 34 35 36
|
#!/usr/bin/perl
use strict;
use warnings;
use Graph::Grammar;
use Graph::Undirected;
use Test::More;
my @rules = (
[ 'degree() based rule',
sub { $_[0]->degree( $_[1] ) == 1 },
sub { $_[0]->delete_vertex( $_[1] ) } ],
[ 'NoMoreVertices based rule',
sub { 1 }, sub { 1 }, NO_MORE_VERTICES,
sub { $_[0]->delete_vertex( $_[1] ) } ],
);
plan tests => 3 * @rules;
for my $rule (@rules) {
my $g = Graph::Undirected->new;
$g->add_cycle( 1..6 );
parse_graph( $g, $rule );
is scalar $g->vertices, 6;
for (1..6) {
$g->add_edge( $_, 10 + $_ );
}
is scalar $g->vertices, 12;
parse_graph( $g, $rule );
is scalar $g->vertices, 6;
}
|