to_parity: Use merge_states
* spot/twaalgos/toparity.cc: Use merge_states at the end of to_parity. * tests/python/toparity.py: Update tests.
This commit is contained in:
parent
875846f51f
commit
8c48003943
2 changed files with 5 additions and 4 deletions
|
|
@ -1684,6 +1684,7 @@ run()
|
||||||
res_->set_named_prop("state-names", names);
|
res_->set_named_prop("state-names", names);
|
||||||
reduce_parity_here(res_);
|
reduce_parity_here(res_);
|
||||||
res_->purge_unreachable_states();
|
res_->purge_unreachable_states();
|
||||||
|
res_->merge_states();
|
||||||
return res_;
|
return res_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ State: 13
|
||||||
[0&1] 5
|
[0&1] 5
|
||||||
[!0&!1] 10 {0 1 3 5}
|
[!0&!1] 10 {0 1 3 5}
|
||||||
[0&!1] 13 {1 3}
|
[0&!1] 13 {1 3}
|
||||||
--END--"""), [35, 28, 23, 30, 29, 25, 22])
|
--END--"""), [31, 27, 23, 28, 28, 24, 22])
|
||||||
|
|
||||||
test(spot.automaton("""
|
test(spot.automaton("""
|
||||||
HOA: v1
|
HOA: v1
|
||||||
|
|
@ -288,7 +288,7 @@ State: 4
|
||||||
[0&!1] 4
|
[0&!1] 4
|
||||||
[0&1] 4 {1 2 4}
|
[0&1] 4 {1 2 4}
|
||||||
--END--
|
--END--
|
||||||
"""), [9, 6, 7, 7, 6, 6, 6])
|
"""), [8, 6, 7, 7, 6, 6, 6])
|
||||||
|
|
||||||
test(spot.automaton("""
|
test(spot.automaton("""
|
||||||
HOA: v1
|
HOA: v1
|
||||||
|
|
@ -341,7 +341,7 @@ explicit-labels trans-acc --BODY-- State: 0 [0&1] 2 {4 5} [0&1] 4 {0 4}
|
||||||
p = spot.to_parity_old(a, True)
|
p = spot.to_parity_old(a, True)
|
||||||
assert p.num_states() == 22
|
assert p.num_states() == 22
|
||||||
assert spot.are_equivalent(a, p)
|
assert spot.are_equivalent(a, p)
|
||||||
test(a, [8, 7, 8, 8, 6, 7, 6])
|
test(a, [6, 6, 6, 6, 6, 6, 6])
|
||||||
|
|
||||||
# Force a few edges to false, to make sure to_parity() is OK with that.
|
# Force a few edges to false, to make sure to_parity() is OK with that.
|
||||||
for e in a.out(2):
|
for e in a.out(2):
|
||||||
|
|
@ -371,4 +371,4 @@ for f in spot.randltl(5, 2000):
|
||||||
a = spot.translate('!(GFa -> (GFb & GF(!b & !Xb)))', 'gen', 'det')
|
a = spot.translate('!(GFa -> (GFb & GF(!b & !Xb)))', 'gen', 'det')
|
||||||
b = spot.to_parity_old(a, True)
|
b = spot.to_parity_old(a, True)
|
||||||
assert a.equivalent_to(b)
|
assert a.equivalent_to(b)
|
||||||
test(a, [7, 7, 3, 7, 8, 7, 3])
|
test(a, [6, 6, 3, 6, 7, 6, 3])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue