diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2017-12-22 11:08:40 +0100 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2017-12-22 11:08:40 +0100 |
commit | b21aa9f9493c55eb15b1b48e00eef05bb528e064 (patch) | |
tree | 54a997d27823baed20f10b974688d0e832d8499f | |
parent | 867852503157299b67fe05645aea11b9da0f2a84 (diff) | |
download | ee-python-b21aa9f9493c55eb15b1b48e00eef05bb528e064.tar.gz ee-python-b21aa9f9493c55eb15b1b48e00eef05bb528e064.tar.bz2 ee-python-b21aa9f9493c55eb15b1b48e00eef05bb528e064.tar.xz ee-python-b21aa9f9493c55eb15b1b48e00eef05bb528e064.zip |
o Allow __lt__ to work when only one unit is set.
-rw-r--r-- | src/ee/__init__.py | 12 | ||||
-rw-r--r-- | test/test_EeVal.py | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/ee/__init__.py b/src/ee/__init__.py index 7f228f8..aa2c109 100644 --- a/src/ee/__init__.py +++ b/src/ee/__init__.py @@ -86,7 +86,17 @@ class EeVal(object): return math.isclose(self.__float__(), other.__float__()) and self._unit == other._unit def __lt__(self, other): - return ((self.__float__(), self._unit) < (other.__float__(), other._unit)) +# return ((self.__float__(), self._unit) < (other.__float__(), other._unit)) + + x = self.__float__() < other.__float__() + if x != 0: + return x + if self._unit is None and other._unit is None: + return 0 + if self._unit is not None and other._unit is not None: + return self._unit < other._unit + + return 1 if self.unit is not None else -1 def __str__(self): return eng_str(self.__float__(), self._unit) diff --git a/test/test_EeVal.py b/test/test_EeVal.py index 840be30..0c21133 100644 --- a/test/test_EeVal.py +++ b/test/test_EeVal.py @@ -49,9 +49,11 @@ def test_units(s, str_value, unit): def test_ordering(): p100 = EeVal('100 p') n100 = EeVal('100 n') + n100F = EeVal('100 n F') u1 = EeVal('1u') assert n100 > p100 assert p100 < n100 + assert n100F < u1 assert [p100, n100, u1] == sorted([p100, u1, n100]) def test_hash(): |