aboutsummaryrefslogtreecommitdiff
path: root/gfsm/gfsm/tests/03_algebra.at
diff options
context:
space:
mode:
Diffstat (limited to 'gfsm/gfsm/tests/03_algebra.at')
-rw-r--r--gfsm/gfsm/tests/03_algebra.at223
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