Author: rhs
Date: Thu Sep 17 14:46:27 2009
New Revision: 816221
URL: http://svn.apache.org/viewvc?rev=816221&view=rev
Log:
added some empty, min, and max to RangedSet
Modified:
qpid/trunk/qpid/python/qpid/datatypes.py
qpid/trunk/qpid/python/tests/datatypes.py
Modified: qpid/trunk/qpid/python/qpid/datatypes.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/datatypes.py?rev=816221&r1=816220&r2=816221&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/datatypes.py (original)
+++ qpid/trunk/qpid/python/qpid/datatypes.py Thu Sep 17 14:46:27 2009
@@ -234,6 +234,24 @@
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)
Modified: qpid/trunk/qpid/python/tests/datatypes.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/tests/datatypes.py?rev=816221&r1=816220&r2=816221&view=diff
==============================================================================
--- qpid/trunk/qpid/python/tests/datatypes.py (original)
+++ qpid/trunk/qpid/python/tests/datatypes.py Thu Sep 17 14:46:27 2009
@@ -148,6 +148,34 @@
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):
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]