tests: rewrite the syntimpl test
* tests/core/syntimpl.cc: Rewrite to test multiple formulas at once, and test them with three different implication checks. * tests/core/syntimpl.test: Adjust the test to execute syntimpl only once.
This commit is contained in:
parent
99a622059c
commit
4ccdcb4a5b
2 changed files with 109 additions and 131 deletions
|
|
@ -22,74 +22,63 @@
|
|||
|
||||
. ./defs || exit 1
|
||||
|
||||
#
|
||||
#GFa && GFb && FG(!a && !b)
|
||||
run 1 ../syntimpl 0 'a' 'a | b'
|
||||
run 1 ../syntimpl 0 'F(a)' 'F(a | b)'
|
||||
run 1 ../syntimpl 0 'G(a)' 'G(a | b)'
|
||||
run 1 ../syntimpl 0 'GF(a)' 'GF(a | b)'
|
||||
run 1 ../syntimpl 0 'GF(a)' '!FG(!a && !b)'
|
||||
|
||||
run 1 ../syntimpl 0 'Xa' 'X(b U a)'
|
||||
run 1 ../syntimpl 0 'XXa' 'XX(b U a)'
|
||||
cat >input <<EOF
|
||||
a,a | b,1,0,0
|
||||
Fa,F(a | b),1,0,0
|
||||
Ga,G(a | b),1,0,0
|
||||
GFa,GF(a | b),1,0,0
|
||||
GFa,GF(a | b),1,0,0
|
||||
Xa,X(b U a),1,0,0
|
||||
XXa,XX(b U a),1,0,0
|
||||
e R f,g U f,1,0,0
|
||||
X(a | b),X(a | b | c | d),1,0,0
|
||||
X(a | b) U (e R f),X(a | b | c | d) U (g U f),1,0,0
|
||||
1,1,1,1,0
|
||||
0,0,1,0,1
|
||||
a,1,1,1,0
|
||||
a,a,1,0,0
|
||||
a,!a,0,1,1
|
||||
!a,1,1,1,0
|
||||
a,a,1,0,0
|
||||
a & b,b,1,0,0
|
||||
a & b,a,1,0,0
|
||||
!a,a & b,0,0,1
|
||||
a,a & b,0,0,0
|
||||
a,!a | !b,0,1,0
|
||||
a,a | b,1,0,0
|
||||
b,a | b,1,0,0
|
||||
a | b,1,1,1,0
|
||||
a,b U a,1,0,0
|
||||
a,1,1,1,0
|
||||
a U b,1,1,1,0
|
||||
a,a,1,0,0
|
||||
a,1,1,1,0
|
||||
a R b,b,1,0,0
|
||||
a R b,1,1,1,0
|
||||
Xa,X(b U a),1,0,0
|
||||
X(a R b),Xb,1,0,0
|
||||
a U b,1 U b,1,0,0
|
||||
a R b,b,1,0,0
|
||||
b & (a U b),a U b,1,0,0
|
||||
a U b,c | (a U b),1,0,0
|
||||
Xa,XX(b U a),0,0,0
|
||||
XXa,X(b U a),0,0,0
|
||||
X(a | b),X(c | d | X(a | b)),0,0,0
|
||||
X(a | b) U (e R f),X(c | d | X(a | b)) U (g U f),0,0,0
|
||||
a,b,0,0,0
|
||||
a,b | c,0,0,0
|
||||
a | b,a,0,0,0
|
||||
a,a & c,0,0,0
|
||||
a & b,c,0,0,0
|
||||
a,a U b,0,0,0
|
||||
a,a R b,0,0,0
|
||||
a R b,a,0,0,0
|
||||
p2,p3 | G(p2 & p5),0,0,0
|
||||
!p3 & F(!p2 | !p5),!p2,0,0,0
|
||||
Xc W 0,Xc R b,0,0,0
|
||||
(b & c) W (a & b),a R b,1,0,0
|
||||
EOF
|
||||
|
||||
run 1 ../syntimpl 0 '(e R f)' '(g U f)'
|
||||
run 1 ../syntimpl 0 '( X(a + b))' '( X((a + b)+(c)+(d)))'
|
||||
run 1 ../syntimpl 0 '( X(a + b)) U (e R f)' '( X((a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 1 ../syntimpl 0 '1' '1'
|
||||
run 1 ../syntimpl 0 '0' '0'
|
||||
|
||||
run 1 ../syntimpl 0 'a' '1'
|
||||
run 1 ../syntimpl 0 'a' 'a'
|
||||
|
||||
run 1 ../syntimpl 0 'a' 'a & 1'
|
||||
|
||||
run 1 ../syntimpl 0 'a & b' 'b'
|
||||
run 1 ../syntimpl 0 'a & b' 'a'
|
||||
|
||||
run 1 ../syntimpl 0 'a' 'a + b'
|
||||
run 1 ../syntimpl 0 'b' 'a + b'
|
||||
|
||||
run 1 ../syntimpl 0 'a + b' '1'
|
||||
|
||||
run 1 ../syntimpl 0 'a' 'b U a'
|
||||
run 1 ../syntimpl 0 'a' 'b U 1'
|
||||
run 1 ../syntimpl 0 'a U b' '1'
|
||||
|
||||
run 1 ../syntimpl 0 'a' '1 R a'
|
||||
run 1 ../syntimpl 0 'a' 'a R 1'
|
||||
run 1 ../syntimpl 0 'a R b' 'b'
|
||||
run 1 ../syntimpl 0 'a R b' '1'
|
||||
|
||||
run 1 ../syntimpl 0 'Xa' 'X(b U a)'
|
||||
run 1 ../syntimpl 0 'X(a R b)' 'Xb'
|
||||
|
||||
run 1 ../syntimpl 0 'a U b' '1 U b'
|
||||
run 1 ../syntimpl 0 'a R b' '1 R b'
|
||||
|
||||
run 1 ../syntimpl 0 'b & (a U b)' 'a U b'
|
||||
run 1 ../syntimpl 0 'a U b' 'c + (a U b)'
|
||||
|
||||
run 0 ../syntimpl 0 'Xa' 'XX(b U a)'
|
||||
run 0 ../syntimpl 0 'XXa' 'X(b U a)'
|
||||
|
||||
run 0 ../syntimpl 0 '( X(a + b))' '( X(X(a + b)+(c)+(d)))'
|
||||
run 0 ../syntimpl 0 '( X(a + b)) U (e R f)' '( X(X(a + b)+(c)+(d))) U (g U f)'
|
||||
|
||||
run 0 ../syntimpl 0 'a' 'b'
|
||||
run 0 ../syntimpl 0 'a' 'b + c'
|
||||
run 0 ../syntimpl 0 'a + b' 'a'
|
||||
run 0 ../syntimpl 0 'a' 'a & c'
|
||||
run 0 ../syntimpl 0 'a & b' 'c'
|
||||
run 0 ../syntimpl 0 'a' 'a U b'
|
||||
run 0 ../syntimpl 0 'a' 'a R b'
|
||||
run 0 ../syntimpl 0 'a R b' 'a'
|
||||
|
||||
run 0 ../syntimpl 0 'p2' 'p3 || G(p2 && p5)'
|
||||
run 0 ../syntimpl 0 '!(p3 || G(p2 && p5))' '!p2'
|
||||
|
||||
run 0 ../syntimpl 0 'Xc W 0' 'Xc R b'
|
||||
run 1 ../syntimpl 0 '(c&b) W (b&a)' 'a R b'
|
||||
|
||||
exit 0
|
||||
run 0 ../syntimpl input > output
|
||||
diff input output
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue