Fix unitary tests
[linpy.git] / pypol / linexprs.py
index 4fa8ed1..bd3ad5a 100644 (file)
@@ -1,3 +1,20 @@
+# Copyright 2014 MINES ParisTech
+#
+# This file is part of Linpy.
+#
+# Linpy 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 3 of the License, or
+# (at your option) any later version.
+#
+# Linpy 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 Linpy.  If not, see <http://www.gnu.org/licenses/>.
+
 import ast
 import functools
 import numbers
 import ast
 import functools
 import numbers
@@ -413,11 +430,13 @@ def symbols(names):
 class Rational(Expression, Fraction):
 
     def __new__(cls, numerator=0, denominator=None):
 class Rational(Expression, Fraction):
 
     def __new__(cls, numerator=0, denominator=None):
-        self = Fraction.__new__(cls, numerator, denominator)
+        self = object().__new__(cls)
         self._coefficients = {}
         self._coefficients = {}
-        self._constant = Fraction(self)
+        self._constant = Fraction(numerator, denominator)
         self._symbols = ()
         self._dimension = 0
         self._symbols = ()
         self._dimension = 0
+        self._numerator = self._constant.numerator
+        self._denominator = self._constant.denominator
         return self
 
     def __hash__(self):
         return self
 
     def __hash__(self):