File: 16_edges.t

package info (click to toggle)
libgraph-perl 1%3A0.9726-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 996 kB
  • sloc: perl: 4,083; sh: 8; makefile: 2
file content (89 lines) | stat: -rw-r--r-- 2,029 bytes parent folder | download | duplicates (3)
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
use strict; use warnings;
use Test::More tests => 48;

use Graph;
my $g = Graph->new;

is $g, "";
ok( !$g->has_edges() );
is( $g->edges, 0 );
is( "@{[$g->edges]}", "" );
ok( !$g->any_edge("a", "b") );
ok( !$g->any_edge("b", "a") );
ok( !$g->any_edge("b", "c") );
ok( !$g->any_edge("c", "b") );

$g->add_edge("a", "b");
is $g, "a-b";
ok( $g->has_edges() );
is( $g->edges, 1 );
is( "@{[map { qq{[@$_]} } $g->edges]}", "[a b]" );
ok( $g->any_edge("a", "b") );
ok( !$g->any_edge("b", "a") );
ok( !$g->any_edge("b", "c") );
ok( !$g->any_edge("c", "b") );

$g->add_edge("b", "c");
is $g, "a-b,b-c";
ok( $g->has_edges() );
is( $g->edges, 2 );
is( "@{[sort map { qq{[@$_]} } $g->edges]}", "[a b] [b c]" );
ok( $g->any_edge("a", "b") );
ok( !$g->any_edge("b", "a") );
ok( $g->any_edge("b", "c") );
ok( !$g->any_edge("c", "b") );

eval { $g->add_edges("x") };
like($@, qr/Graph::add_edges: missing end vertex/);

is($g->add_edges("x", "y"), $g);
is($g, "a-b,b-c,x-y");

eval { $g->add_edge("c", "d", "e", "f") };
like($@,
     qr/Graph::add_edge: expected hyperedged graph/);

eval { $g->add_edge("c") };
like($@,
     qr/Graph::add_edge: expected hyperedged graph/);

ok(   $g->delete_edge("b", "c") );
is $g, "a-b,x-y,c";

ok(   $g->delete_edge("b", "d") );
is $g, "a-b,x-y,c";

is( $g->delete_edge("a", "b"), 'x-y,a,b,c' );
is( $g->delete_edge("a", "b"), 'x-y,a,b,c' );

$g->add_edges(qw(a b b x c d c y));
is $g, "a-b,b-x,c-d,c-y,x-y";

$g->delete_edges(qw(a b c d));
is $g, "b-x,c-y,x-y,a,d";

$g->delete_edges(qw(a b c d));
is $g, "b-x,c-y,x-y,a,d";

$g->delete_edges(qw(b x c y));
is $g, "x-y,a,b,c,d";

is( $g->delete_edge(), $g );
is( $g->delete_edges(), $g );

my $h = Graph->new(countedged => 1);

$h->add_edges(qw(a x a x b y b y));
is $h, "a-x,b-y";

$h->delete_edge('a', 'x');
is $h, "a-x,b-y";
$h->delete_edge('a', 'x');
is $h, "b-y,a,x";

$h->delete_edges('b', 'y');
ok(   $h->has_edges ); # takes no args
ok(   $h->has_edges("b", "y") );
$h->delete_edges('b', 'y');
ok( ! $h->has_edges );
ok( ! $h->has_edges("b", "y") );