A polyhedral library based on ISL.
"""
-from .linexprs import Expression, Symbol, symbols, Dummy, Rational
+from .linexprs import Expression, Symbol, Dummy, symbols, Rational
from .polyhedra import Polyhedron, Eq, Ne, Le, Lt, Ge, Gt, Ne, Empty, Universe
from .domains import Domain, And, Or, Not
__all__ = [
- 'Expression', 'Symbol', 'symbols', 'Dummy', 'Rational',
+ 'Expression', 'Symbol', 'Dummy', 'symbols', 'Rational',
'Polyhedron', 'Eq', 'Ne', 'Le', 'Lt', 'Ge', 'Gt', 'Empty', 'Universe',
'Domain', 'And', 'Or', 'Not',
]
__all__ = [
'Expression',
- 'Symbol', 'symbols', 'Dummy',
+ 'Symbol', 'Dummy', 'symbols',
'Rational',
]
raise TypeError('expr must be a sympy.Symbol instance')
-def symbols(names):
- if isinstance(names, str):
- names = names.replace(',', ' ').split()
- return tuple(Symbol(name) for name in names)
-
-
class Dummy(Symbol):
__slots__ = (
return isinstance(other, Dummy) and self._index == other._index
+def symbols(names):
+ if isinstance(names, str):
+ names = names.replace(',', ' ').split()
+ return tuple(Symbol(name) for name in names)
+
+
class Rational(Expression):
__slots__ = (
with self.assertRaises(TypeError):
Symbol.fromsympy(sp_x*sp_x)
- def test_symbols(self):
- self.assertListEqual(list(symbols('x y')), [self.x, self.y])
- self.assertListEqual(list(symbols('x,y')), [self.x, self.y])
- self.assertListEqual(list(symbols(['x', 'y'])), [self.x, self.y])
-
class TestDummy(unittest.TestCase):
self.assertNotEqual(Dummy(), Dummy())
+class TestSymbols(unittest.TestCase):
+
+ def setUp(self):
+ self.x = Symbol('x')
+ self.y = Symbol('y')
+
+ def test(self):
+ self.assertListEqual(list(symbols('x y')), [self.x, self.y])
+ self.assertListEqual(list(symbols('x,y')), [self.x, self.y])
+ self.assertListEqual(list(symbols(['x', 'y'])), [self.x, self.y])
+ with self.assertRaises(TypeError):
+ symbols(1)
+ with self.assertRaises(TypeError):
+ symbols(['a', 1])
+
+
class TestRational(unittest.TestCase):
def setUp(self):