* src/tgba/bdddict.cc, src/tgba/bdddict.cc (register_clone_acc):

New function.
* src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh: Use it to
distinguish acceptance conditions that are identical in both
operands.
* src/tgbatest/explpro4.test: New file.
* src/tgbatest/explpro2.test, src/tgbatest/Makefile.am: Adjust.
This commit is contained in:
Alexandre Duret-Lutz 2006-07-19 14:55:39 +00:00
parent cb9549e4d4
commit c412cd4cc3
7 changed files with 129 additions and 21 deletions

View file

@ -1,6 +1,6 @@
## Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
## département Systèmes Répartis Coopératifs (SRC), Université Pierre
## et Marie Curie.
## Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
## Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
## Université Pierre et Marie Curie.
##
## This file is part of Spot, a model checking library.
##
@ -75,6 +75,7 @@ TESTS = \
explprod.test \
explpro2.test \
explpro3.test \
explpro4.test \
tripprod.test \
mixprod.test \
dupexp.test \

View file

@ -1,7 +1,7 @@
#!/bin/sh
# Copyright (C) 2003, 2004, 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie.
# Copyright (C) 2003, 2004, 2005, 2006 Laboratoire d'Informatique de
# Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
# Université Pierre et Marie Curie.
#
# This file is part of Spot, a model checking library.
#
@ -37,9 +37,9 @@ s1, s2, "b", p2;
s1, s3, "a", p3;
EOF
cat >expected <<EOF
acc = "p3" "p2" "p1";
"s1 * s1", "s2 * s2", "b & !a", "p2" "p1";
cat >expected <<'EOF'
acc = "p2$1" "p3" "p2" "p1";
"s1 * s1", "s2 * s2", "b & !a", "p2$1" "p1";
"s1 * s1", "s3 * s3", "a & !b", "p3" "p2";
EOF

49
src/tgbatest/explpro4.test Executable file
View file

@ -0,0 +1,49 @@
#!/bin/sh
# Copyright (C) 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie.
#
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# 02111-1307, USA.
. ./defs
set -e
cat >input1 <<EOF
acc = p1;
s1, s1, "a", p1;
s1, s1, "!a", ;
EOF
cat >input2 <<EOF
acc= p1;
s1, s1, "a", ;
s1, s1, "!a", p1;
EOF
cat >expected <<'EOF'
acc = "p1$1" "p1";
"s1 * s1", "s1 * s1", "a", "p1";
"s1 * s1", "s1 * s1", "!a", "p1$1";
EOF
run 0 ./explprod input1 input2 > stdout
cat stdout
diff stdout expected
rm input1 input2 stdout expected