File Coverage

blib/lib/FLAT/Transition/Simple.pm
Criterion Covered Total %
statement 23 25 92.0
branch 2 4 50.0
condition n/a
subroutine 8 9 88.8
pod 0 6 0.0
total 33 44 75.0


line stmt bran cond sub pod time code
1             package FLAT::Transition::Simple;
2              
3 6     6   39 use parent 'FLAT::Transition';
  6         10  
  6         35  
4              
5 6     6   227 use strict;
  6         13  
  6         151  
6 6     6   30 use Carp;
  6         12  
  6         1955  
7              
8             sub new {
9 8635     8635 0 16169 my ($pkg, @things) = @_;
10 8635         23452 bless {map {$_ => 1} @things}, $pkg;
  1090         4493  
11             }
12              
13             sub does {
14 481773     481773 0 783427 my ($self, @things) = @_;
15 481773 50       807484 return 1 if @things == 0;
16 481773         1553154 return !!grep $self->{$_}, @things;
17             }
18              
19             sub add {
20 12732     12732 0 22967 my ($self, @things) = @_;
21 12732         36130 @$self{@things} = (1) x @things;
22             }
23              
24             sub delete {
25 0     0 0 0 my ($self, @things) = @_;
26 0         0 delete $self->{$_} for @things;
27             }
28              
29             sub alphabet {
30 20874     20874 0 26941 my $self = shift;
31 20874         64795 sort {$a cmp $b} keys %$self;
  18405         35843  
32             }
33              
34             sub as_string {
35 1176     1176 0 1498 my $self = shift;
36 1176 50       1859 join ",", map {length $_ ? $_ : "epsilon"} $self->alphabet;
  1222         5495  
37             }
38              
39             1;