فهرست منبع

calcex.Figure: overloaded abs()

Fabian Peter Hammerle 8 سال پیش
والد
کامیت
b7917420dc
3فایلهای تغییر یافته به همراه17 افزوده شده و 1 حذف شده
  1. 6 0
      ioex/calcex.py
  2. 1 1
      setup.py
  3. 10 0
      tests/calcex/test_figure.py

+ 6 - 0
ioex/calcex.py

@@ -179,3 +179,9 @@ class Figure(object):
             value=round(self.value, *params, **kwargs),
             unit=self.unit,
         )
+
+    def __abs__(self):
+        return type(self)(
+            value=abs(self.value),
+            unit=self.unit,
+        )

+ 1 - 1
setup.py

@@ -5,7 +5,7 @@ import glob
 setup(
     name = 'ioex',
     packages = ['ioex'],
-    version = '0.15.1',
+    version = '0.16.0',
     description = 'extension for python\'s build-in input / output interface',
     author = 'Fabian Peter Hammerle',
     author_email = 'fabian.hammerle@gmail.com',

+ 10 - 0
tests/calcex/test_figure.py

@@ -244,3 +244,13 @@ def test_div(a, b, expected_quotient):
 ])
 def test_round(source_figure, params, expected_figure):
     assert expected_figure == round(source_figure, *params)
+
+
+@pytest.mark.parametrize(('source_figure', 'expected_figure'), [
+    [Figure(1, 'm'), Figure(1, 'm')],
+    [Figure(-1, 'm'), Figure(1, 'm')],
+    [Figure(0, 'm'), Figure(0, 'm')],
+    [Figure(-1.23, 'm'), Figure(1.23, 'm')],
+])
+def test_abs(source_figure, expected_figure):
+    assert expected_figure == abs(source_figure)