def test_select_issue15(self): rb = RoaringBitmap(range(0x10000, 0x1ffff + 1)) assert rb[0] == 0x10000 rb.discard(0x10010) assert rb[0] == 0x10000 rb = RoaringBitmap(range(0x10, 0xffff + 1)) assert rb[0] == 0x10, rb.debuginfo(True) rb = RoaringBitmap(range(0x10010, 0x1ffff + 1)) assert rb[0] == 0x10010, rb.debuginfo(True) lst = list(range(1, 0xccbb)) lst.extend(range(0xcccc, 0xfffc)) rb = RoaringBitmap(lst) for n in (0, 0xcccc, -1): assert lst[n] == rb[n], (n, lst[n], rb[n])
def test_fixtures(single): for name, data in single: rb = RoaringBitmap(data) if name == 'many keys': assert len(rb._keys()) > 100 elif name == 'empty': assert len(rb) == 0 else: assert name[0].upper() in rb.debuginfo()
def test_subset(self, pair): for name, data1, data2 in pair: ref, ref2 = set(data1), set(data2) rb, rb2 = RoaringBitmap(data1), RoaringBitmap(data2) refans = ref <= ref2 assert (set(rb) <= ref2) == refans, name assert (rb <= rb2) == refans, name k = len(data2) // 2 ref, rb = set(data2[:k]), RoaringBitmap(data2[:k]) refans = ref <= ref2 assert (set(rb) <= ref2) == refans, name assert (ref <= set(rb2)) == refans, name assert (rb <= rb2) == refans, (name, rb.debuginfo())