gen: introduce a new automaton family

* spot/gen/automata.cc, spot/gen/automata.hh: Define AUT_L_NBA.
* bin/genaut.cc (--l-nba): New option.
* bin/man/genaut.x, doc/org/genaut.org, NEWS: Document it.
* tests/python/gen.py, tests/core/genaut.test: Test it.
This commit is contained in:
Alexandre Duret-Lutz 2017-04-27 22:19:21 +02:00
parent 649793df75
commit ec51f976f8
8 changed files with 106 additions and 18 deletions

View file

@ -29,13 +29,18 @@ s/[=[].*/=1/p
res=`genaut $opts --stats="--%F=%L"`
test "$opts" = "$res"
genaut --ks-cobuchi=..3 --stats=%s,%e,%t,%c,%g >out
genaut --ks-cobuchi=..3 --l-nba=..3 --stats=%s,%e,%t,%c,%g >out
cat >expected <<EOF
3,7,16,1,Fin(0)
5,14,32,1,Fin(0)
7,20,48,1,Fin(0)
4,7,9,1,Inf(0)
7,12,16,1,Inf(0)
10,17,23,1,Inf(0)
EOF
diff out expected
genaut --ks-cobuchi=0 2>err && exit 1
grep positive err
genaut --l-nba=0 2>err && exit 1
grep positive err

View file

@ -31,7 +31,7 @@ assert k2.num_states() == 5
# the type returned by spot.gen.ks_cobuchi() is the correct one.
assert 'to_str' in dir(k2)
k3 = gen.aut_pattern(gen.AUT_KS_COBUCHI, 3)
k3 = gen.aut_pattern(gen.AUT_L_NBA, 3)
assert k2.get_dict() == k3.get_dict()
try:
@ -63,3 +63,7 @@ else:
assert 40 == sum(p.size() for p in gen.ltl_patterns((gen.LTL_OR_G, 1, 5),
(gen.LTL_GH_Q, 3),
gen.LTL_EH_PATTERNS))
assert 32 == sum(p.num_states()
for p in gen.aut_patterns((gen.AUT_L_NBA, 1, 3),
(gen.AUT_KS_COBUCHI, 5)))