def testexists(self): bf = bloomfilter() bf.setData(100000000) bf.setData(100005000) bf.setData(100004000) bf.setData(100002000) self.assertEqual(True,bf.exists(100000000)) self.assertEqual(True,bf.exists(100002000)) self.assertEqual(True,bf.exists(100004000)) self.assertEqual(True,bf.exists(100005000)) self.assertEqual(False,bf.exists(100005001))
def add(self, element): """ Add a new element to the set. Return False if element is already in the set. Otherwise return True and the element is added in the filter. """ element = str(element) if len(self.filter_list) == 0: # initialize the filter list one_filter = bloomfilter(capacity = self.total_capacity, error = self.error*(1. - self.r)) one_filter.add(element) self.filter_list.append(one_filter) self.n_filters = self.n_filters + 1 self.cnt = self.cnt + 1 self.total_size = self.total_size + one_filter.size() return True elif self.check(element) == True: print("The element to be added:" + str(element) + " already exists.") return False else: num_filters = len(self.filter_list) last_filter = self.filter_list[num_filters - 1] # create a new filter if last_filter.count() == last_filter.capacity(): one_filter = bloomfilter(capacity = last_filter.capacity()*self.s, error = last_filter.error*self.r) one_filter.add(element) self.filter_list.append(one_filter) self.n_filters = self.n_filters + 1 self.cnt = self.cnt + 1 self.total_capacity = self.total_capacity + one_filter.capacity() self.total_size = self.total_size + one_filter.size() return True else: last_filter.add(element) self.cnt = self.cnt + 1 return True
def __init__(self, config): super(dupcheck, self).__init__() self.config = config self.bf = bloomfilter(self.config.bf_config())
def testgetHashList(self): bf = bloomfilter() l = bf.getHashList(200000000) self.assertEqual( 10,len(l)) self.assertEqual([98, 128, 162, 200, 242, 288, 338, 392, 450, 512], l)