dot: add x option for dot2tex
* spot/twa/acc.cc, spot/twa/acc.hh: Add a LaTeX output for acceptance conditions. * spot/twaalgos/dot.cc: Implement the 'x' option and refactor the code a bit to limit duplication. * tests/core/dot2tex.test: New test case (requires dot2tex). * tests/Makefile.am: Add dot2tex.test. * tests/core/alternating.test, tests/core/readsave.test, tests/python/automata-io.ipynb: Adjust expected output. * NEWS, doc/org/oaut.org: Mention the new option.
This commit is contained in:
parent
b242122ce8
commit
fbb9e4374e
10 changed files with 365 additions and 182 deletions
|
|
@ -219,6 +219,7 @@ TESTS_twa = \
|
|||
core/gragsa.test \
|
||||
core/dstar.test \
|
||||
core/readsave.test \
|
||||
core/dot2tex.test \
|
||||
core/ltldo.test \
|
||||
core/ltldo2.test \
|
||||
core/maskacc.test \
|
||||
|
|
|
|||
|
|
@ -573,27 +573,27 @@ digraph G {
|
|||
subgraph cluster_0 {
|
||||
color=green
|
||||
label=""
|
||||
4 [label="t"]
|
||||
4 [label=<t>]
|
||||
}
|
||||
subgraph cluster_1 {
|
||||
color=green
|
||||
label=""
|
||||
1 [label="G(a & b)"]
|
||||
1 [label=<G(a & b)>]
|
||||
}
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
label=""
|
||||
2 [label="F!a"]
|
||||
2 [label=<F!a>]
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
color=red
|
||||
label=""
|
||||
3 [label="F!b"]
|
||||
3 [label=<F!b>]
|
||||
}
|
||||
subgraph cluster_4 {
|
||||
color=green
|
||||
label=""
|
||||
0 [label="c R (c | G(a & b) | (F!b & F!a))"]
|
||||
0 [label=<c R (c | G(a & b) | (F!b & F!a))>]
|
||||
-1 [label=<>,shape=point]
|
||||
-4 [label=<>,shape=point]
|
||||
-7 [label=<>,shape=point]
|
||||
|
|
@ -669,26 +669,26 @@ digraph G {
|
|||
subgraph cluster_0 {
|
||||
color=green
|
||||
label=""
|
||||
4 [label="t"]
|
||||
4 [label=<t>]
|
||||
}
|
||||
subgraph cluster_1 {
|
||||
color=red
|
||||
label=""
|
||||
2 [label="F!a"]
|
||||
2 [label=<F!a>]
|
||||
}
|
||||
subgraph cluster_2 {
|
||||
color=red
|
||||
label=""
|
||||
3 [label="F!b"]
|
||||
3 [label=<F!b>]
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
color=green
|
||||
label=""
|
||||
0 [label="c R (c | G(a & b) | (F!b & F!a))"]
|
||||
0 [label=<c R (c | G(a & b) | (F!b & F!a))>]
|
||||
-1 [label=<>,shape=point]
|
||||
-4 [label=<>,shape=point]
|
||||
-7 [label=<>,shape=point]
|
||||
1 [label="G(a & b)"]
|
||||
1 [label=<G(a & b)>]
|
||||
-10 [label=<>,shape=point]
|
||||
}
|
||||
0 -> 4 [label=<c>]
|
||||
|
|
@ -852,22 +852,22 @@ digraph G {
|
|||
subgraph cluster_0 {
|
||||
color=green
|
||||
label=""
|
||||
3 [label="t"]
|
||||
3 [label=<t>]
|
||||
}
|
||||
subgraph cluster_1 {
|
||||
color=green
|
||||
label=""
|
||||
1 [label="Fa"]
|
||||
1 [label=<Fa>]
|
||||
}
|
||||
subgraph cluster_2 {
|
||||
color=green
|
||||
label=""
|
||||
2 [label="G!a"]
|
||||
2 [label=<G!a>]
|
||||
}
|
||||
subgraph cluster_3 {
|
||||
color=green
|
||||
label=""
|
||||
0 [label="G((b & Fa) | (!b & G!a))"]
|
||||
0 [label=<G((b & Fa) | (!b & G!a))>]
|
||||
-1 [label=<>,shape=point]
|
||||
-4 [label=<>,shape=point]
|
||||
}
|
||||
|
|
|
|||
40
tests/core/dot2tex.test
Executable file
40
tests/core/dot2tex.test
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
#!/bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2017 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
# 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 3 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
. ./defs
|
||||
set -e
|
||||
|
||||
# This tests our support for LaTeX-embedded dot, for dot2tex.
|
||||
|
||||
# Skip this test if we don't find all the tools we need.
|
||||
(latexmk --version) || exit 77
|
||||
(pdflatex --version) || exit 77
|
||||
(dot2tex --version) || exit 77
|
||||
(dot -V) || exit 77
|
||||
|
||||
ltl2tgba 'a U b' --dot=scanx >out.dot
|
||||
dot2tex --autosize --nominsize out.dot >out.tex
|
||||
pdflatex out.tex
|
||||
|
||||
ltl2tgba 'p0 U p1' --dot=tax >out2.dot
|
||||
dot2tex --autosize --nominsize out2.dot >out2.tex
|
||||
grep -F 'p_{0}' out2.tex
|
||||
grep -F 'mathsf{Inf}' out2.tex
|
||||
pdflatex out2.tex
|
||||
|
|
@ -406,7 +406,7 @@ digraph G {
|
|||
edge [fontname="Lato"]
|
||||
I [label="", style=invis, width=0]
|
||||
I -> 0
|
||||
0 [label="0"]
|
||||
0 [label=<0>]
|
||||
0 -> 0 [label=<a & b<br/>$zero$one>]
|
||||
0 -> 0 [label=<!a & !b>]
|
||||
0 -> 0 [label=<!a & b<br/>$one>]
|
||||
|
|
|
|||
|
|
@ -88,9 +88,9 @@
|
|||
" size=\"10.2,5\" edge[arrowhead=vee, arrowsize=.7]\n",
|
||||
" I [label=\"\", style=invis, width=0]\n",
|
||||
" I -> 1\n",
|
||||
" 0 [label=\"0\", peripheries=2]\n",
|
||||
" 0 [label=<0>, peripheries=2]\n",
|
||||
" 0 -> 0 [label=<1>]\n",
|
||||
" 1 [label=\"1\"]\n",
|
||||
" 1 [label=<1>]\n",
|
||||
" 1 -> 0 [label=<b>]\n",
|
||||
" 1 -> 1 [label=<a & !b>]\n",
|
||||
"}\n",
|
||||
|
|
@ -862,4 +862,4 @@
|
|||
"metadata": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue