1use strict; use warnings;
2use Test::More tests => 50;
3
4use Graph;
5my $g0 = Graph->new;
6my $g1 = Graph->new(undirected => 1);
7
8$g0->add_edge(1=>1); $g1->add_edge(1=>1);
9$g0->add_edge(1=>2); $g1->add_edge(1=>2);
10$g0->add_edge(1=>3); $g1->add_edge(1=>3);
11$g0->add_edge(2=>4); $g1->add_edge(2=>4);
12$g0->add_edge(5=>4); $g1->add_edge(5=>4);
13$g0->add_vertex(6);  $g1->add_vertex(6);
14
15is( $g0->in_degree(1), 1 );
16is( $g0->in_degree(2), 1 );
17is( $g0->in_degree(3), 1 );
18is( $g0->in_degree(4), 2 );
19is( $g0->in_degree(5), 0 );
20is( $g0->in_degree(6), 0 );
21
22is( $g0->out_degree(1), 3 );
23is( $g0->out_degree(2), 1 );
24is( $g0->out_degree(3), 0 );
25is( $g0->out_degree(4), 0 );
26is( $g0->out_degree(5), 1 );
27is( $g0->out_degree(6), 0 );
28
29is( $g0->degree(1), -2 );
30is( $g0->degree(2), 0 );
31is( $g0->degree(3), 1 );
32is( $g0->degree(4), 2 );
33is( $g0->degree(5), -1 );
34is( $g0->degree(6), 0 );
35
36is( $g0->vertex_degree(1), $g0->degree(1) );
37is( $g0->vertex_degree(2), $g0->degree(2) );
38is( $g0->vertex_degree(3), $g0->degree(3) );
39is( $g0->vertex_degree(4), $g0->degree(4) );
40is( $g0->vertex_degree(5), $g0->degree(5) );
41is( $g0->vertex_degree(6), $g0->degree(6) );
42
43is( $g1->in_degree(1), 4 );
44is( $g1->in_degree(2), 2 );
45is( $g1->in_degree(3), 1 );
46is( $g1->in_degree(4), 2 );
47is( $g1->in_degree(5), 1 );
48is( $g1->in_degree(6), 0 );
49
50is( $g1->out_degree(1), 4 );
51is( $g1->out_degree(2), 2 );
52is( $g1->out_degree(3), 1 );
53is( $g1->out_degree(4), 2 );
54is( $g1->out_degree(5), 1 );
55is( $g1->out_degree(6), 0 );
56
57is( $g1->degree(1), 4 );
58is( $g1->degree(2), 2 );
59is( $g1->degree(3), 1 );
60is( $g1->degree(4), 2 );
61is( $g1->degree(5), 1 );
62is( $g1->degree(6), 0 );
63
64is( $g1->vertex_degree(1), $g1->degree(1) );
65is( $g1->vertex_degree(2), $g1->degree(2) );
66is( $g1->vertex_degree(3), $g1->degree(3) );
67is( $g1->vertex_degree(4), $g1->degree(4) );
68is( $g1->vertex_degree(5), $g1->degree(5) );
69is( $g1->vertex_degree(6), $g1->degree(6) );
70
71is( $g0->degree, 0 );
72is( $g1->degree, 10 );
73
74