relabel_here: make it compatible with relabel_bse

* spot/twaalgos/relabel.cc: Deal with the cases where the substitution
value is a Boolean formula.
* spot/twaalgos/relabel.hh: Improve documentation.
* tests/python/relabel.py: Add more tests.
* python/spot/impl.i: Add bindings for are_isomorphic for the above
test.
* NEWS: Mention the news.
This commit is contained in:
Alexandre Duret-Lutz 2017-06-20 11:26:51 +02:00
parent 819cd7b8b6
commit 0bc1dd4446
5 changed files with 79 additions and 16 deletions

View file

@ -1,5 +1,5 @@
# -*- mode: python; coding: utf-8 -*-
# Copyright (C) 2015 Laboratoire de Recherche et Développement
# Copyright (C) 2015, 2017 Laboratoire de Recherche et Développement
# de l'Epita
#
# This file is part of Spot, a model checking library.
@ -30,3 +30,24 @@ print(res)
assert(res == """#define p0 a & b
#define p1 c
GFp0 -> (FGp0 & Gp1)""")
autg = g.translate()
spot.relabel_here(autg, m)
assert str(autg.ap()) == '(a, b, c)'
assert spot.isomorphism_checker.are_isomorphic(autg, f.translate())
a = spot.formula('a')
u = spot.formula('a U b')
m[a] = u
try:
spot.relabel_here(autg, m)
except RuntimeError as e:
assert "new labels" in str(e)
m = spot.relabeling_map()
m[u] = a
try:
spot.relabel_here(autg, m)
except RuntimeError as e:
assert "old labels" in str(e)