diff options
Diffstat (limited to 'gfsm/gfsm/tests/03_algebra.at')
-rw-r--r-- | gfsm/gfsm/tests/03_algebra.at | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/gfsm/gfsm/tests/03_algebra.at b/gfsm/gfsm/tests/03_algebra.at new file mode 100644 index 0000000..0692f10 --- /dev/null +++ b/gfsm/gfsm/tests/03_algebra.at @@ -0,0 +1,223 @@ +## -*- Mode: Autotest -*- +## +## File: algebra.at +## Package: gfsm +## Description: autotest test-suite script: basic tests +## + +AT_BANNER([algebraic operations]) + +##-------------------------------------------------------------- +## Test: unary: closure.plus +AT_SETUP([closure.plus]) +AT_KEYWORDS([algebra closure]) +opname="closure-plus" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmclosure --plus ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: closure.star +AT_SETUP([closure.star]) +AT_KEYWORDS([algebra closure]) +opname="closure-star" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmclosure ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: complement +AT_SETUP([complement]) +AT_KEYWORDS([algebra complement]) +opname="complement" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmcomplement ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +## +##-- complement(b): given alphabet +opname="complement-b" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmcomplement -i $tdata/test.lab ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: binary: compose +AT_SETUP([compose]) +AT_KEYWORDS([algebra compose]) +opname="compose" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-1.tfst -F ${opfile}-in-1.gfst]]) +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-2.tfst -F ${opfile}-in-2.gfst]]) +AT_CHECK([[$progdir/gfsmcompose ${opfile}-in-1.gfst ${opfile}-in-2.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: binary: concat +AT_SETUP([concat]) +AT_KEYWORDS([algebra concat]) +opname="concat" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-1.tfst -F ${opfile}-in-1.gfst]]) +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-2.tfst -F ${opfile}-in-2.gfst]]) +AT_CHECK([[$progdir/gfsmconcat ${opfile}-in-1.gfst ${opfile}-in-2.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: connect +AT_SETUP([connect]) +AT_KEYWORDS([algebra connect]) +opname="connect" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmconnect ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: determinize +AT_SETUP([determinize]) +AT_KEYWORDS([algebra determinize]) +opname="determinize" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmdeterminize ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: binary: difference +## + found bug: clone() wasn't setting root_id (assumed to have been done in copy_shallow()) +AT_SETUP([difference]) +AT_KEYWORDS([algebra difference]) +opname="difference" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-1.tfst -F ${opfile}-in-1.gfst]]) +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-2.tfst -F ${opfile}-in-2.gfst]]) +AT_CHECK([[$progdir/gfsmdifference ${opfile}-in-1.gfst ${opfile}-in-2.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: binary: intersect +AT_SETUP([intersect]) +AT_KEYWORDS([algebra intersect]) +opname="intersect" +opfile="$opname" + +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-1.tfst -F ${opfile}-in-1.gfst]]) +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-2.tfst -F ${opfile}-in-2.gfst]]) +AT_CHECK([[$progdir/gfsmintersect ${opfile}-in-1.gfst ${opfile}-in-2.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) + +opfile="intersect2" ##-- intersection as called by gfsm_automaton_difference() +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-1.tfst -F ${opfile}-in-1.gfst]]) +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-2.tfst -F ${opfile}-in-2.gfst]]) +AT_CHECK([[$progdir/gfsmintersect ${opfile}-in-1.gfst ${opfile}-in-2.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) + +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: invert +AT_SETUP([invert]) +AT_KEYWORDS([algebra invert]) +opname="invert" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsminvert ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <--- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: optional +AT_SETUP([optional]) +AT_KEYWORDS([algebra optional]) +opname="optional" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmoptional ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <--- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: project.lo +AT_SETUP([project.lo]) +AT_KEYWORDS([algebra project]) +opname="project-lo" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmproject -1 ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <--- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: project.hi +AT_SETUP([project.hi]) +AT_KEYWORDS([algebra project]) +opname="project-hi" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmproject -2 ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <--- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: renumber +AT_SETUP([renumber]) +AT_KEYWORDS([algebra renumber]) +opname="renumber" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmrenumber ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <--- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: unary: rmepsilon +AT_SETUP([rmepsilon]) +AT_KEYWORDS([algebra rmepsilon]) +opname="rmepsilon" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in.tfst -F ${opfile}-in.gfst]]) +AT_CHECK([[$progdir/gfsmrmepsilon ${opfile}-in.gfst -F ${opfile}-got.gfst]]) ## <--- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP + +##-------------------------------------------------------------- +## Test: binary: union +AT_SETUP([union]) +AT_KEYWORDS([algebra union]) +opname="union" +opfile="$opname" +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-1.tfst -F ${opfile}-in-1.gfst]]) +AT_CHECK([[$progdir/gfsmcompile $tdata/${opfile}-in-2.tfst -F ${opfile}-in-2.gfst]]) +AT_CHECK([[$progdir/gfsmunion ${opfile}-in-1.gfst ${opfile}-in-2.gfst -F ${opfile}-got.gfst]]) ## <---- +rm -f expout; ln $tdata/${opfile}-want.tfst expout +AT_CHECK([[$progdir/gfsmprint ${opfile}-got.gfst]],0,expout) +AT_CLEANUP |