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   35 use parent 'FLAT::Transition';
  6         12  
  6         27  
4              
5 6     6   217 use strict;
  6         9  
  6         94  
6 6     6   25 use Carp;
  6         23  
  6         1677  
7              
8             sub new {
9 8973     8973 0 15201 my ($pkg, @things) = @_;
10 8973         22488 bless {map {$_ => 1} @things}, $pkg;
  1116         4481  
11             }
12              
13             sub does {
14 488620     488620 0 739179 my ($self, @things) = @_;
15 488620 50       762409 return 1 if @things == 0;
16 488620         1516585 return !!grep $self->{$_}, @things;
17             }
18              
19             sub add {
20 12890     12890 0 22604 my ($self, @things) = @_;
21 12890         35268 @$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 20967     20967 0 26519 my $self = shift;
31 20967         62324 sort {$a cmp $b} keys %$self;
  18407         33377  
32             }
33              
34             sub as_string {
35 1236     1236 0 1568 my $self = shift;
36 1236 50       1691 join ",", map {length $_ ? $_ : "epsilon"} $self->alphabet;
  1410         6193  
37             }
38              
39             1;