remove_fin: fix bug in remove_fin_det_weak

* wrap/python/tests/remfin.py: New file.
* wrap/python/tests/Makefile.am: Add it.
* src/twaalgos/remfin.cc (remove_fin_det_weak): Purge dead states.
This commit is contained in:
Alexandre Duret-Lutz 2015-10-17 17:38:45 +02:00
parent 9be0cd7f69
commit 1d30242d17
3 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,37 @@
import spot
# This test used to trigger an assertion (or a segfault)
# in scc_filter_states().
aut = spot.automaton("""
HOA: v1
States: 3
Start: 1
AP: 1 "a"
Acceptance: 1 Inf(0)
--BODY--
State: 0 {0}
[t] 0
State: 1
[!0] 0
[0] 2
State: 2
[t] 2
--END--
""")
aut.prop_inherently_weak()
aut = spot.dtwa_complement(aut)
aut = spot.scc_filter_states(aut)
assert(aut.to_str('hoa') == """HOA: v1
States: 2
Start: 0
AP: 1 "a"
acc-name: co-Buchi
Acceptance: 1 Fin(0)
properties: trans-labels explicit-labels state-acc deterministic
properties: inherently-weak
--BODY--
State: 0
[0] 1
State: 1
[t] 1
--END--""")