ltihooks.py apparently breaks the import mechanisms of Python 2.6, causes SWIG's runtime to fail to share a global type table, and yields various failures in our tests. * wrap/python/ltihooks.py: Delete. * wrap/python/Makefile.am (EXTRA_DIST): remove ltihooks.py. * wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py, wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py, wrap/python/tests/minato.py, wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py, wrap/python/tests/setxor.py: Do not use ltihooks. * wrap/python/tests/run.in (pypath): Include the .libs/ directory in the search path so that Python can find the *.so libraries.
57 lines
1.7 KiB
Python
Executable file
57 lines
1.7 KiB
Python
Executable file
# -*- mode: python; coding: iso-8859-1 -*-
|
|
# Copyright (C) 2004, 2010 Laboratoire d'Informatique de Paris 6 (LIP6),
|
|
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
|
# et Marie Curie.
|
|
#
|
|
# 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 2 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 Spot; see the file COPYING. If not, write to the Free
|
|
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
# 02111-1307, USA.
|
|
|
|
import spot
|
|
|
|
class test(spot.loopless_modular_mixed_radix_gray_code):
|
|
def __init__(self, lim):
|
|
spot.loopless_modular_mixed_radix_gray_code.__init__(self, len(lim))
|
|
self.msg = list(lim)
|
|
self.lim = list(lim)
|
|
|
|
def a_first(self, j):
|
|
self.msg[j] = 'a'
|
|
|
|
def a_next(self, j):
|
|
self.msg[j] = chr(1 + ord(self.msg[j]))
|
|
|
|
def a_last(self, j):
|
|
return self.msg[j] == self.lim[j]
|
|
|
|
def run(self):
|
|
self.first()
|
|
res = []
|
|
while not self.done():
|
|
m = "".join(self.msg)
|
|
res.append(m)
|
|
print m
|
|
self.next()
|
|
return res
|
|
|
|
|
|
t = test("acbb")
|
|
|
|
expected = [ 'aaaa', 'abaa', 'acaa', 'acba',
|
|
'aaba', 'abba', 'abbb', 'acbb',
|
|
'aabb', 'aaab', 'abab', 'acab' ]
|
|
|
|
assert t.run() == expected
|