bin: introduce autcross
Fixes #252. * NEWS: Mention it. * bin/autcross.cc, bin/man/autcross.x, doc/org/autcross.org: New files. * bin/Makefile.am, bin/man/Makefile.am, doc/org/tools.org, doc/Makefile.am: Add them. * bin/autfilt.cc: Use is_universal() instead of is_deterministic(). * bin/common_hoaread.hh, bin/common_trans.cc, bin/common_trans.hh, bin/ltlcross.cc, bin/ltldo.cc: Factor some bits common between ltlcross, ltldo and autcross. * tests/core/autcross.test, tests/core/autcross2.test: New files. * tests/Makefile.am: Add them. * tests/core/dra2dba.test, tests/core/sbacc.test, tests/core/streett.test: Use autcross.
This commit is contained in:
parent
b9fff6a4b1
commit
0cf250d839
21 changed files with 1726 additions and 53 deletions
45
tests/core/autcross.test
Executable file
45
tests/core/autcross.test
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2017 Laboratoire de Recherche et Développement de
|
||||
# l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
# Spot is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
. ./defs
|
||||
set -e
|
||||
|
||||
# Skip this test if ltl2dstar is not installed.
|
||||
(ltl2dstar --version) || exit 77
|
||||
|
||||
randaut -n10 2 |
|
||||
autcross 'ltl2dstar --complement-input=yes' 'autfilt --complement' \
|
||||
--csv=out.csv 2>stderr
|
||||
|
||||
# 5 lines per input automaton, and 1 "No problem detected" line.
|
||||
test 51 = `wc -l < stderr`
|
||||
grep -q 'sanity check' stderr
|
||||
|
||||
# --no-check still allows to build a CSV
|
||||
randaut -n10 2 |
|
||||
autcross 'ltl2dstar --complement-input=yes' 'autfilt --complement' \
|
||||
--csv=out2.csv --no-check 2>stderr
|
||||
test 51 = `wc -l < stderr`
|
||||
grep -q 'sanity check' stderr && exit 1
|
||||
|
||||
for f in out.csv out2.csv; do
|
||||
sed 's/,[0-9]*\.[0-9]*,/,TIME,/' $f > _$f
|
||||
done
|
||||
diff _out.csv _out2.csv
|
||||
30
tests/core/autcross2.test
Executable file
30
tests/core/autcross2.test
Executable file
|
|
@ -0,0 +1,30 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2017 Laboratoire de Recherche et Développement de
|
||||
# l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
# Spot is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
. ./defs
|
||||
set -e
|
||||
|
||||
randaut -n10 2 | tee input |
|
||||
autcross --language-preserve 'autfilt' 'autfilt --complement' \
|
||||
--save-bogus=bogus.hoa 2>stderr && exit 1
|
||||
cat stderr
|
||||
# We should have 4 counterexample per input automaton
|
||||
test 40 = `grep 'both automata accept the infinite word:' stderr | wc -l`
|
||||
diff input bogus.hoa
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2014 Laboratoire de Recherche et Développement de
|
||||
# l'Epita (LRDE).
|
||||
# Copyright (C) 2014, 2017 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
|
|
@ -329,5 +329,5 @@ Acc-Sig: +2
|
|||
13
|
||||
EOF
|
||||
|
||||
test `dstar2tgba -D in.dra --stats="%d:%s:%e"` = "1:23:143"
|
||||
|
||||
autcross 'dstar2tgba -D' --language-preserved -F in.dra --csv=out.csv
|
||||
grep '3,23,143,184,1,2,0,0,0$' out.csv
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ test 4 = `ltl2tgba -S 'F(a & X(!a &Xb))' --any --stats=%s`
|
|||
|
||||
# Test case from Thibaud Michaud. This used to fail, because sbacc()
|
||||
# would remove acceptance marks from all rejecting SCCS...
|
||||
cat >tm.hoa <<EOF
|
||||
autcross 'autfilt --sbacc' --language-preserve <<EOF
|
||||
HOA: v1
|
||||
States: 5
|
||||
Start: 1
|
||||
|
|
@ -188,8 +188,6 @@ State: 4
|
|||
[!2] 3 {1}
|
||||
--END--
|
||||
EOF
|
||||
autfilt --sbacc tm.hoa > out.hoa
|
||||
autfilt -q --equivalent-to out.hoa tm.hoa
|
||||
|
||||
# Tautological acceptances are converted to "t"
|
||||
cat >taut.hoa <<EOF
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2016 Laboratoire de Recherche et Développement
|
||||
# Copyright (C) 2016, 2017 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
|
|
@ -110,6 +110,6 @@ State: 7 {0 2 4}
|
|||
--END--
|
||||
EOF
|
||||
|
||||
run 0 autfilt --tgba streett.hoa > out.hoa
|
||||
autfilt -q --equivalent-to streett.hoa out.hoa
|
||||
run 0 autcross --language-preserved \
|
||||
'autfilt --tgba %H | tee out.hoa >%O' -F streett.hoa
|
||||
grep 'generalized-Buchi 2' out.hoa
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue