Added integer comparison to number range

This commit is contained in:
Konsta Vesterinen
2013-11-13 14:54:32 +02:00
parent 4c5d2cf18a
commit 3c2491965d
2 changed files with 11 additions and 0 deletions

View File

@@ -123,6 +123,8 @@ class NumberRange(object):
) )
def __eq__(self, other): def __eq__(self, other):
if isinstance(other, six.integer_types):
return self.lower == other == self.upper
try: try:
return ( return (
self.lower == other.lower and self.lower == other.lower and
@@ -135,6 +137,9 @@ class NumberRange(object):
return not (self == other) return not (self == other)
def __gt__(self, other): def __gt__(self, other):
if isinstance(other, six.integer_types):
return self.lower > other and self.upper > other
try: try:
return self.lower > other.lower and self.upper > other.upper return self.lower > other.lower and self.upper > other.upper
except AttributeError: except AttributeError:

View File

@@ -64,6 +64,12 @@ class TestComparisonOperators(object):
assert NumberRange(0, 2) <= NumberRange(1, 3) assert NumberRange(0, 2) <= NumberRange(1, 3)
assert NumberRange(1, 3) >= NumberRange(1, 3) assert NumberRange(1, 3) >= NumberRange(1, 3)
def test_integer_comparison(self):
assert NumberRange(2, 2) <= 3
assert NumberRange(1, 3) >= 0
assert NumberRange(2, 2) == 2
assert NumberRange(2, 2) != 3
def test_str_representation(): def test_str_representation():
assert str(NumberRange(1, 3)) == '1 - 3' assert str(NumberRange(1, 3)) == '1 - 3'