spot/tests/core/format.test
Alexandre Duret-Lutz 18283d6907 add options to %x to list atomic propositions
* bin/common_aoutput.cc, bin/common_aoutput.hh, bin/common_output.cc,
bin/common_output.hh: Add options to %x to list atomic propositions
with various quoting scheme.  Deprecate --format=%a in favor of the
new --format=%x for consistency with --stats=%x.
* tests/core/format.test, tests/core/remprop.test: Adjust and add more
tests.
* NEWS: Mention these changes.
2017-03-01 16:02:09 +01:00

76 lines
2.4 KiB
Bash

#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2016, 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 || exit 1
set -e
genltl --dac=1..10 --format='%s,%b,%x,%f' > output
cat >expected <<EOF
3,2,1,G!p0
7,6,2,Fp0 -> (!p1 U p0)
6,5,2,G(p0 -> G!p1)
13,9,3,G((p0 & !p1 & Fp1) -> (!p2 U p1))
10,6,3,G((p0 & !p1) -> (!p2 W p1))
2,2,1,Fp0
7,3,2,!p0 W (!p0 & p1)
9,8,2,G!p0 | F(p0 & Fp1)
13,6,3,G((p0 & !p1) -> (!p1 W (!p1 & p2)))
13,6,3,G((p0 & !p1) -> (!p1 U (!p1 & p2)))
EOF
diff output expected
genltl --dac | ltlfilt --output='ap-%x.ltl'
test 4 = `wc -l<ap-1.ltl`
test 10 = `wc -l<ap-2.ltl`
test 16 = `wc -l<ap-3.ltl`
test 13 = `wc -l<ap-4.ltl`
test 10 = `wc -l<ap-5.ltl`
test 2 = `wc -l<ap-6.ltl`
genltl --dac --output='ap-%x.ltl2'
for i in 1 2 3 4 5 6; do
cmp ap-$i.ltl ap-$i.ltl2 || exit 1
done
ltl2tgba GFa > GFa
out=`<GFa autfilt --stats='%W,%w' --complement`
test "$out" = "cycle{a},cycle{!a}"
ltl2tgba FGa > FGa
test "0,1,0,1" = "`<FGa autfilt -D --stats='%D,%d,%P,%p'`"
test '0,0,0,1,"a"' = "`<FGa autfilt -C --stats='%D,%d,%P,%p,%[d]x'`"
# We had some issues in the pase where %P was set only if %p was used
# as well. So we make separate tests for this.
test "0,0" = "`<FGa autfilt -C --stats='%D,%P'`"
test "1,1" = "`<GFa autfilt -C --stats='%D,%P'`"
test "0,1" = "`<FGa autfilt -C --stats='%d,%p'`"
test "1,1" = "`<GFa autfilt -C --stats='%d,%p'`"
test "1,0" = "`<FGa autfilt -D --stats='%N,%n'`"
test "4" = "`ltl2tgba '(Ga -> Gb)W c' --stats=%c`"
test "4,5" = "`ltl2tgba '(Ga -> Gb)W c' | autfilt -C --stats=%C,%c`"
out=`ltl2tgba '(Ga->Gb)W c' --stats=%[r]c,%[a]c,%[t]c,%[w]c,%[wT]c,%[W]c,%[Wt]c`
test "1,3,1,3,2,1,0" = "$out"
ltl2tgba 'a' --stats='%[z]c' 2>stderr && exit 1
cat stderr
grep -F "ltl2tgba: unknown option 'z' in '%[z]c'" stderr