graph: store the source indices in the transition vector

... and use it to sort transitions.

* src/graph/graph.hh: Adjust storage of source index.  Provide
remove_dead_transitions_(), sort_transitions_() and
chain_transitions_() methods.
* src/tgba/tgbagraph.cc (merge_transitions): Rewrite using
above methods.
* src/tgba/tgbagraph.hh: Add a comparison operator for
transitions.
* src/tgbatest/degenlskip.test, src/tgbatest/det.test,
src/tgbatest/ltl2ta.test, src/tgbatest/neverclaimread.test,
src/tgbatest/readsave.test: Adjust expected transition order in test
cases.
This commit is contained in:
Alexandre Duret-Lutz 2014-12-02 20:16:06 +01:00
parent 80ce0e2129
commit 0db0eca14e
8 changed files with 201 additions and 80 deletions

View file

@ -51,9 +51,9 @@ digraph G {
1 -> 1 [label="1"]
1 -> 2 [label="p0 & p1"]
2 [label="1"]
2 -> 3 [label="p1 & !p0"]
2 -> 2 [label="!p1"]
2 -> 1 [label="!p1"]
2 -> 2 [label="!p1"]
2 -> 3 [label="p1 & !p0"]
3 [label="2", peripheries=2]
3 -> 3 [label="1\n{0}"]
}
@ -63,6 +63,7 @@ EOF
# (The order is not guaranteed by SPOT.)
sed -e 's/!p0 & p1/p1 \& !p0/g' -e 's/p1 & p0/p0 \& p1/g' stdout \
> tmp_ && mv tmp_ stdout
# FIXME: use are-isomorphic once it is available
diff stdout expected
rm input stdout expected
@ -95,9 +96,9 @@ digraph G {
1 -> 1 [label="1"]
1 -> 2 [label="p0 & p1"]
2 [label="1"]
2 -> 3 [label="p1 & !p0"]
2 -> 2 [label="!p1"]
2 -> 1 [label="!p1"]
2 -> 2 [label="!p1"]
2 -> 3 [label="p1 & !p0"]
3 [label="2", peripheries=2]
3 -> 3 [label="1\n{0}"]
}
@ -107,6 +108,7 @@ EOF
# (The order is not guaranteed by SPOT.)
sed -e 's/!p0 & p1/p1 \& !p0/g' -e 's/p1 & p0/p0 \& p1/g' stdout \
> tmp_ && mv tmp_ stdout
# FIXME: use are-isomorphic once it is available
diff stdout expected
rm input stdout expected