diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2009-09-17 14:46:27 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2009-09-17 14:46:27 +0000 |
| commit | 0c5426031c1a5ab306da5e3ddbee4918efa5aeee (patch) | |
| tree | 1bbcffa59be0f38c4fb276bac580cc7ed8a614da /python | |
| parent | b463cab2665d13d9f28b6a02b8166e4a3c8df219 (diff) | |
| download | qpid-python-0c5426031c1a5ab306da5e3ddbee4918efa5aeee.tar.gz | |
added some empty, min, and max to RangedSet
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@816221 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python')
| -rw-r--r-- | python/qpid/datatypes.py | 18 | ||||
| -rw-r--r-- | python/tests/datatypes.py | 28 |
2 files changed, 46 insertions, 0 deletions
diff --git a/python/qpid/datatypes.py b/python/qpid/datatypes.py index f832ddae34..61643715e4 100644 --- a/python/qpid/datatypes.py +++ b/python/qpid/datatypes.py @@ -234,6 +234,24 @@ class RangedSet: def add(self, lower, upper = None): self.add_range(Range(lower, upper)) + def empty(self): + for r in self.ranges: + if r.lower <= r.upper: + return False + return True + + def max(self): + if self.ranges: + return self.ranges[-1].upper + else: + return None + + def min(self): + if self.ranges: + return self.ranges[0].lower + else: + return None + def __iter__(self): return iter(self.ranges) diff --git a/python/tests/datatypes.py b/python/tests/datatypes.py index b00e5e78f8..00e649d6cf 100644 --- a/python/tests/datatypes.py +++ b/python/tests/datatypes.py @@ -148,6 +148,34 @@ class RangedSetTest(TestCase): assert range.lower == 0 assert range.upper == 8 + def testEmpty(self): + s = RangedSet() + assert s.empty() + s.add(0, -1) + assert s.empty() + s.add(0, 0) + assert not s.empty() + + def testMinMax(self): + s = RangedSet() + assert s.max() is None + assert s.min() is None + s.add(0, 10) + assert s.max() == 10 + assert s.min() == 0 + s.add(0, 5) + assert s.max() == 10 + assert s.min() == 0 + s.add(0, 11) + assert s.max() == 11 + assert s.min() == 0 + s.add(15, 20) + assert s.max() == 20 + assert s.min() == 0 + s.add(-10, -5) + assert s.max() == 20 + assert s.min() == -10 + class RangeTest(TestCase): def testIntersect1(self): |
