Swap order of symbols and Dummy
authorVivien Maisonneuve <v.maisonneuve@gmail.com>
Thu, 3 Jul 2014 13:16:21 +0000 (15:16 +0200)
committerVivien Maisonneuve <v.maisonneuve@gmail.com>
Thu, 3 Jul 2014 22:06:46 +0000 (00:06 +0200)
pypol/__init__.py
pypol/linexprs.py
pypol/tests/test_linexprs.py

index c81cb25..e39bce7 100644 (file)
@@ -2,13 +2,13 @@
 A polyhedral library based on ISL.
 """
 
 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__ = [
 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',
 ]
     'Polyhedron', 'Eq', 'Ne', 'Le', 'Lt', 'Ge', 'Gt', 'Empty', 'Universe',
     'Domain', 'And', 'Or', 'Not',
 ]
index f3cff23..ef5d90b 100644 (file)
@@ -9,7 +9,7 @@ from fractions import Fraction, gcd
 
 __all__ = [
     'Expression',
 
 __all__ = [
     'Expression',
-    'Symbol', 'symbols', 'Dummy',
+    'Symbol', 'Dummy', 'symbols',
     'Rational',
 ]
 
     'Rational',
 ]
 
@@ -415,12 +415,6 @@ class Symbol(Expression):
             raise TypeError('expr must be a sympy.Symbol instance')
 
 
             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__ = (
 class Dummy(Symbol):
 
     __slots__ = (
@@ -449,6 +443,12 @@ class Dummy(Symbol):
         return isinstance(other, Dummy) and self._index == other._index
 
 
         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__ = (
 class Rational(Expression):
 
     __slots__ = (
index 508c57b..4c27b21 100644 (file)
@@ -225,11 +225,6 @@ class TestSymbol(unittest.TestCase):
         with self.assertRaises(TypeError):
             Symbol.fromsympy(sp_x*sp_x)
 
         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):
 
 
 class TestDummy(unittest.TestCase):
 
@@ -248,6 +243,22 @@ class TestDummy(unittest.TestCase):
         self.assertNotEqual(Dummy(), Dummy())
 
 
         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):
 class TestRational(unittest.TestCase):
 
     def setUp(self):