Acme-FSM
view release on metacpan or search on metacpan
t/state/start.t view on Meta::CPAN
[qw| eignore |],
{ START => { switch => \&AFSMTS_U, uturn => [ q|turquoise|, undef ]}},
qr.\Q{turquoise}(): record !isa defined . ],
[ q|[T_], state is noise, action isa undef|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_T, turns => { 1 => [ q|garnet|, undef ]}}},
qr.\Q{garnet}(): record !isa defined . ],
[ q|(START/noise)|,
[qw| void |],
{ START =>
{ eturn => [ ],
uturn => [ ],
tturn => [ ],
fturn => [ ],
turns => { } } },
qr.\Q{switch} !isa defined . ],
[ q|[T](START/noise)|,
[qw| |],
{ START =>
{ switch => \&AFSMTS_T,
eturn => [qw| START Rilla |],
tturn => [qw| START Trigo |] } },
[ qr.\Q{START}(Rilla): unknown action .,
qr.\Q{START}(Trigo): unknown action . ] ],
[ q|[F](START/noise)|,
[qw| eignore |],
{ START => { switch => \&AFSMTS_F, fturn => [qw| START Argo |]}},
qr.\Q{START}(Argo): unknown action . ],
[ q|[U](START/noise)|,
[qw| eignore |],
{ START => { switch => \&AFSMTS_U, uturn => [qw| START Peric |]}},
qr.\Q{START}(Peric): unknown action . ],
[ q|[_](START/noise)|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_T, turns => { 1 => [qw| START Janno |]}}},
qr.\Q{START}(Janno): unknown action . ],
[ q|[T](START/NEXT)|,
[qw| todo |],
{ START =>
{ switch => \&AFSMTS_T,
eturn => [qw| START NEXT |],
tturn => [qw| START NEXT |] }} ],
[ q|[F](START/NEXT)|,
[qw| eignore todo |],
{ START => { switch => \&AFSMTS_F, fturn => [qw| START NEXT |]}} ],
[ q|[U](START/NEXT)|,
[qw| eignore todo |],
{ START => { switch => \&AFSMTS_U, uturn => [qw| START NEXT |]}} ],
[ q|[_](START/NEXT)|,
[qw| eignore todo |],
{ START =>
{ switch => \&AFSMTS_T, turns => { 1 => [qw| START NEXT |]}}} ],
[ q|[T](noise/noise)|,
[qw| |],
{ START =>
{ switch => \&AFSMTS_T,
eturn => [qw| agate Rilla |],
tturn => [qw| zircon Trigo |] } },
qr.\Q[verify]: {zircon}(): record !isa defined . ],
[ q|[F](noise/noise)|,
[qw| eignore |],
{ START => { switch => \&AFSMTS_F, fturn => [qw| jadeite Argo |]}},
qr.\Q[verify]: {jadeite}(): record !isa defined . ],
[ q|[U](noise/noise)|,
[qw| eignore |],
{ START => { switch => \&AFSMTS_U, uturn => [qw| turquoise Peric |]}},
qr.\Q[verify]: {turquoise}(): record !isa defined . ],
[ q|[_](noise/noise)|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_T, turns => { 1 => [qw| garnet Janno |]}}},
qr.\Q[verify]: {garnet}(): record !isa defined . ],
[ q|[T], trailing undef|,
[qw| |],
{ START =>
{ switch => \&AFSMTS_T, tturn => [ q|zircon|, undef, undef ]}},
qr.\Q{zircon}(): record !isa defined . ],
[ q|[F], trailing undef|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_F, fturn => [ q|jadeite|, undef, undef ]}},
qr.\Q{jadeite}(): record !isa defined . ],
[ q|[U], trailing undef|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_U, uturn => [ q|turquoise|, undef, undef ]}},
qr.\Q{turquoise}(): record !isa defined . ],
[ q|[_], trailing undef|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_T,
turns => { 1 => [ q|garnet|, undef, undef ]} }},
qr.\Q{garnet}(): record !isa defined . ],
[ q|[T], trailing noise|,
[qw| |],
{ START =>
{ switch => \&AFSMTS_T, tturn => [ q|zircon|, undef, q|Rilla| ]}},
qr.\Q{zircon}(): record !isa defined . ],
[ q|[F], trailing noise|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_F, fturn => [ q|jadeite|, undef, q|Rilla| ]}},
qr.\Q{jadeite}(): record !isa defined . ],
[ q|[U], trailing noise|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_U, uturn => [ q|truquoise|, undef, q|Rilla| ]}},
qr.\Q{truquoise}(): record !isa defined . ],
[ q|[_], trailing noise|,
[qw| eignore |],
{ START =>
{ switch => \&AFSMTS_T,
turns => { 1 => [ q|garnet|, undef, q|Rilla| ]} }},
qr.\Q{garnet}(): record !isa defined . ] );
plan tests =>
scalar map { ( '' ) x ( 2 - grep( q|eignore| eq $_, @{$_->[1]})) } @data;
foreach my $item ( @data ) {
%st = %{$item->[2]};
if( grep q|todo| eq $_, @{$item->[1]} ) {
local $TODO = q|should detect|;
toggle_now;
AFSMTS_wrap;
unlike $@, qr<^ALRM>, AFSMTS_croakson qq|empty, $item->[0]| unless
grep $_ eq q|eignore|, @{$item->[1]};
toggle_now;
AFSMTS_wrap;
unlike $@, qr<^ALRM>, AFSMTS_croakson qq|full, $item->[0]| }
else {
my $res = ref $item->[3] eq q|ARRAY| ?
$item->[3] : [ $item->[3], $item->[3] ];
( run in 0.945 second using v1.01-cache-2.11-cpan-39bf76dae61 )