Commit 56940e78 authored by Duncan Macleod's avatar Duncan Macleod

infinity: fixed comparison operators for python3

since `cmp` was removed
parent d39c905f
......@@ -137,18 +137,23 @@ class infinity(object):
# tests
def __cmp__(self, other):
"""
Positive infinity compares as greater than everything
except itself, negative infinity compares as less than
everything except itself.
"""
if self is other:
return 0
if self is PosInfinity:
return 1
# self is NegInfinity
return -1
def __lt__(self, other):
return self is NegInfinity and other is not NegInfinity
def __gt__(self, other):
return self is PosInfinity and other is not PosInfinity
def __le__(self, other):
return self is NegInfinity or other is PosInfinity
def __ge__(self, other):
return self is PosInfinity or other is NegInfinity
def __eq__(self, other):
return self is other
def __ne__(self, other):
return self is not other
def __nonzero__(self):
"""
......
......@@ -67,6 +67,17 @@ def set2():
class test_infinity(unittest.TestCase):
def test_math(self):
a = segments.infinity()
self.assertEqual(-a, -a)
self.assertLess(-a, 0)
self.assertLess(-a, a)
self.assertGreater(0, -a)
self.assertLess(0, a)
self.assertGreater(a, -a)
self.assertGreater(a, 0)
self.assertEqual(a, a)
@unittest.skipIf(sys.version_info.major >= 3,
'Python 3 does not have cmp')
def test__cmp__(self):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment