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   37 use parent 'FLAT::Transition';
  6         13  
  6         34  
4              
5 6     6   249 use strict;
  6         13  
  6         105  
6 6     6   25 use Carp;
  6         20  
  6         1877  
7              
8             sub new {
9 8650     8650 0 17787 my ($pkg, @things) = @_;
10 8650         25880 bless {map {$_ => 1} @things}, $pkg;
  1143         5582  
11             }
12              
13             sub does {
14 475492     475492 0 872463 my ($self, @things) = @_;
15 475492 50       858682 return 1 if @things == 0;
16 475492         1758726 return !!grep $self->{$_}, @things;
17             }
18              
19             sub add {
20 12576     12576 0 23407 my ($self, @things) = @_;
21 12576         38147 @$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 20563     20563 0 30346 my $self = shift;
31 20563         71374 sort {$a cmp $b} keys %$self;
  18055         39020  
32             }
33              
34             sub as_string {
35 1110     1110 0 1739 my $self = shift;
36 1110 50       2085 join ",", map {length $_ ? $_ : "epsilon"} $self->alphabet;
  1222         6558  
37             }
38              
39             1;