File Coverage

blib/lib/Net/BGP/ASPath/AS_SET.pm
Criterion Covered Total %
statement 22 26 84.6
branch 2 2 100.0
condition n/a
subroutine 6 8 75.0
pod 0 7 0.0
total 30 43 69.7


line stmt bran cond sub pod time code
1             #!/usr/bin/perl
2              
3             package Net::BGP::ASPath::AS_SET;
4              
5 7     7   50 use strict;
  7         18  
  7         2218  
6              
7             ## Inheritance and Versioning ##
8              
9             @Net::BGP::ASPath::AS_SET::ISA = qw( Net::BGP::ASPath::AS );
10             our $VERSION = '0.18';
11              
12             sub type {
13 7     7 0 11 return 1;
14             }
15              
16             sub length {
17 41     41 0 60 my $this = shift;
18              
19             # We really shouldn't see empty ones of these, but if we do,
20             # we will treat them as zero. But otherwise, RFC indicates
21             # that in path computations, any AS_SET is equal to one hop.
22              
23 41 100       119 if (scalar(keys %$this)) {
24 39         89 return 1;
25             } else {
26 2         7 return 0;
27             }
28             }
29              
30 0     0 0 0 sub asstring { as_string(@_) }
31              
32             sub as_string {
33 262     262 0 355 my $this = shift;
34 262         346 return '{' . join(',', sort { $a <=> $b } keys %{$this}) . '}';
  800         2069  
  262         1145  
35             }
36              
37             sub asarray {
38 24     24 0 39 my $this = shift;
39 24         35 return [ sort { $a <=> $b } keys %{$this} ];
  49         121  
  24         86  
40             }
41              
42             sub merge {
43 24     24 0 38 my $this = shift;
44 24         39 foreach my $obj (@_) {
45 24         31 foreach my $as (@{$obj}) {
  24         52  
46 30         65 $this->{$as} = 1;
47             }
48             }
49 24         46 return $this;
50             }
51              
52             sub count {
53 0     0 0   my $this = shift;
54              
55 0           return scalar(@{$this});
  0            
56             }
57              
58             1;
59