scc_info: detect incorrect initial state
* spot/twaalgos/sccinfo.cc: Here. * tests/python/sccinfo.py: Test it.
This commit is contained in:
parent
31ccab026b
commit
904cfb27fa
2 changed files with 11 additions and 0 deletions
|
|
@ -75,6 +75,11 @@ namespace spot
|
||||||
options_(options)
|
options_(options)
|
||||||
{
|
{
|
||||||
unsigned n = aut->num_states();
|
unsigned n = aut->num_states();
|
||||||
|
|
||||||
|
if (initial_state != -1U && n <= initial_state)
|
||||||
|
throw std::runtime_error
|
||||||
|
("scc_info: supplied initial state does not exist");
|
||||||
|
|
||||||
sccof_.resize(n, -1U);
|
sccof_.resize(n, -1U);
|
||||||
|
|
||||||
if (!!(options & scc_info_options::TRACK_STATES_IF_FIN_USED)
|
if (!!(options & scc_info_options::TRACK_STATES_IF_FIN_USED)
|
||||||
|
|
|
||||||
|
|
@ -22,6 +22,12 @@ import spot
|
||||||
|
|
||||||
a = spot.translate('(Ga -> Gb) W c')
|
a = spot.translate('(Ga -> Gb) W c')
|
||||||
|
|
||||||
|
try:
|
||||||
|
si = spot.scc_info(a, 10)
|
||||||
|
exit(2)
|
||||||
|
except RuntimeError as e:
|
||||||
|
assert "initial state does not exist" in str(e)
|
||||||
|
|
||||||
si = spot.scc_info(a)
|
si = spot.scc_info(a)
|
||||||
n = si.scc_count()
|
n = si.scc_count()
|
||||||
assert n == 4
|
assert n == 4
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue