Improve representation of Constants
authorVivien Maisonneuve <v.maisonneuve@gmail.com>
Fri, 20 Jun 2014 07:54:32 +0000 (09:54 +0200)
committerVivien Maisonneuve <v.maisonneuve@gmail.com>
Fri, 20 Jun 2014 07:54:32 +0000 (09:54 +0200)
pypol/linear.py
tests/test_linear.py

index 8fdece9..e6d442e 100644 (file)
@@ -355,8 +355,11 @@ class Constant(Expression):
         return bool(self.constant)
 
     def __repr__(self):
         return bool(self.constant)
 
     def __repr__(self):
-        return '{}({!r})'.format(self.__class__.__name__, self._constant)
-
+        if self.constant.denominator == 1:
+            return '{}({!r})'.format(self.__class__.__name__, self.constant)
+        else:
+            return '{}({!r}, {!r})'.format(self.__class__.__name__,
+                self.constant.numerator, self.constant.denominator)
 
 class Symbol(Expression):
 
 
 class Symbol(Expression):
 
index b722726..2375092 100644 (file)
@@ -131,6 +131,7 @@ class TestExpression(unittest.TestCase):
     def test_repr(self):
         self.assertEqual(repr(self.x), "Symbol('x')")
         self.assertEqual(repr(self.one), 'Constant(1)')
     def test_repr(self):
         self.assertEqual(repr(self.x), "Symbol('x')")
         self.assertEqual(repr(self.one), 'Constant(1)')
+        self.assertEqual(repr(self.pi), 'Constant(22, 7)')
         self.assertEqual(repr(self.expr), "Expression({'x': 1, 'y': -2}, 3)")
 
     def test_fromstring(self):
         self.assertEqual(repr(self.expr), "Expression({'x': 1, 'y': -2}, 3)")
 
     def test_fromstring(self):