Przeglądaj źródła

calcex.Figure: extend / operator for figures having the same unit

Fabian Peter Hammerle 8 lat temu
rodzic
commit
333fc10a6c
2 zmienionych plików z 7 dodań i 2 usunięć
  1. 6 2
      ioex/calcex.py
  2. 1 0
      tests/calcex/test_figure.py

+ 6 - 2
ioex/calcex.py

@@ -113,7 +113,11 @@ class Figure(object):
         if isinstance(divisor, Figure):
             assert not self.value is None
             assert not divisor.value is None
-            assert divisor.unit is None
-            return type(self)(value=self.value / divisor.value, unit=self.unit)
+            if self.unit == divisor.unit:
+                return Figure(value = self.value / divisor.value, unit = None)
+            elif divisor.unit is None:
+                return type(self)(value=self.value / divisor.value, unit=self.unit)
+            else:
+                raise NotImplementedError('{!r} / {!r}'.format(self, divisor))
         else:
             return self / Figure(value=divisor, unit=None)

+ 1 - 0
tests/calcex/test_figure.py

@@ -214,6 +214,7 @@ def test_mult(a, b, expected_product):
     [Figure(1.0, 'm'), Figure(2), Figure(0.5, 'm')],
     [Figure(1.0, 'm'), 2, Figure(0.5, 'm')],
     [Figure(2.0, 'm'), -1.5, Figure(-4. / 3, 'm')],
+    [Figure(2.0, 'm'), Figure(0.5, 'm'), Figure(4)],
 ])
 def test_div(a, b, expected_quotient):
     generated_quotient = a / b