class _IntegerRange:
- def __init__(self, lower, upper):
+ def __init__(self, lower, upper=None):
self._check_type(lower)
+
+ if upper is None:
+ upper = lower
+
self._check_type(upper)
if lower > upper:
class SignedIntegerRange(_IntegerRange):
+ _is_type = staticmethod(utils._is_int64)
_check_type = staticmethod(utils._check_int64)
class UnsignedIntegerRange(_IntegerRange):
+ _is_type = staticmethod(utils._is_uint64)
_check_type = staticmethod(utils._check_uint64)
def add(self, rg):
if type(rg) is not self._range_type:
- # assume it's a simple pair (will raise if it's not)
- rg = self._range_type(rg[0], rg[1])
+ if self._range_type._is_type(rg):
+ rg = self._range_type(rg)
+ else:
+ # assume it's a simple pair (will raise if it's not)
+ rg = self._range_type(rg[0], rg[1])
status = self._add_range(self._ptr, rg.lower, rg.upper)
utils._handle_func_status(status, 'cannot add range to range set object')
self.assertEqual(rg.lower, self._def_lower)
self.assertEqual(rg.upper, self._def_lower)
+ def test_create_single(self):
+ rg = self._CLS(self._def_lower)
+ self.assertEqual(rg.lower, self._def_lower)
+ self.assertEqual(rg.upper, self._def_lower)
+
def test_create_wrong_type_lower(self):
with self.assertRaises(TypeError):
rg = self._CLS(19.3, self._def_upper)
self.assertIn(self._range2, rs)
self.assertIn(self._range3, rs)
+ def test_create_single(self):
+ rs = self._CLS((self._range_same.lower,))
+ self.assertEqual(len(rs), 1)
+ self.assertIn(self._range_same, rs)
+
def test_create_non_iter(self):
with self.assertRaises(TypeError):
self._rs = self._CLS(23)
def test_create_wrong_elem_type(self):
with self.assertRaises(TypeError):
- self._rs = self._CLS((self._range1, self._range2, 17))
+ self._rs = self._CLS((self._range1, self._range2, 'lel'))
def test_len(self):
self.assertEqual(len(self._rs), 3)
self._range1 = bt2.UnsignedIntegerRange(4, 192)
self._range2 = bt2.UnsignedIntegerRange(17, 228)
self._range3 = bt2.UnsignedIntegerRange(1000, 2000)
+ self._range_same = bt2.UnsignedIntegerRange(1300, 1300)
super().setUp()
self._range1 = bt2.SignedIntegerRange(-1484, -17)
self._range2 = bt2.SignedIntegerRange(-101, 1500)
self._range3 = bt2.SignedIntegerRange(1948, 2019)
+ self._range_same = bt2.SignedIntegerRange(-1300, -1300)
super().setUp()