def test_index_query_3(self): table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') for i in xrange(NUM_ELEMENTS): value = {'a': 1483184218151+random.randint(0, 500)} key = 'i%d' % i table.put(key, value) for i in xrange(NUM_ELEMENTS): key = 'i%d' % i table.delete(key) num_below_500 = 0 for i in xrange(NUM_ELEMENTS): value = {'a': 1483184218151+random.randint(0, 1000)} key = 'i%d' % i table.put(key, value) if value['a'] <= 1483184218151+500: num_below_500 += 1 j = 0 for k, v in table.query('a', to_key=1483184218151+500, include_value=True): j += 1 self.assertEqual(j, num_below_500) table.close()
def test_query(self): table = minemeld.ft.table.Table(TABLENAME) table.create_index("a") for i in range(NUM_ELEMENTS): value = {"a": random.randint(0, 500)} key = "i%d" % i table.put(key, value) j = 0 for k, v in table.query(include_value=True): j += 1 self.assertEqual(j, NUM_ELEMENTS)
def test_query(self): table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') for i in range(NUM_ELEMENTS): value = {'a': random.randint(0, 500)} key = 'i%d' % i table.put(key, value) j = 0 for k, v in table.query(include_value=True): j += 1 self.assertEqual(j, NUM_ELEMENTS)
def test_update(self): table = minemeld.ft.table.Table(TABLENAME) table.create_index("a") table.put("k1", {"a": 1}) table.put("k2", {"a": 1}) table.put("k1", {"a": 2}) ok = 0 rk = None for k in table.query("a", from_key=0, to_key=1): rk = k ok += 1 self.assertEqual(rk, "k2") self.assertEqual(ok, 1)
def test_update(self): table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') table.put('k1', {'a': 1}) table.put('k2', {'a': 1}) table.put('k1', {'a': 2}) ok = 0 rk = None for k in table.query('a', from_key=0, to_key=1): rk = k ok += 1 self.assertEqual(rk, 'k2') self.assertEqual(ok, 1)
def test_update(self): table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') table.put('k1', {'a': 1}) table.put('k2', {'a': 1}) table.put('k1', {'a': 2}) ok = 0 rk = None for k in table.query('a', from_key=0, to_key=1): rk = k ok += 1 self.assertEqual(rk, 'k2') self.assertEqual(ok, 1) table.close()
def test_random(self): # create table table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') # local dict d = {} # add 10000 elements to the table # with an 'a' attribute in range 0,500 for i in range(NUM_ELEMENTS): value = {'a': random.randint(0, 500)} key = 'i%d' % i d[key] = value table.put(key, value) # check number of indicators added self.assertEqual(table.num_indicators, len(d.keys())) # check sorted query retrieval flatdict = sorted(d.items(), key=lambda x: x[1]['a']) j = 0 for k, v in table.query('a', from_key=0, to_key=500, include_value=True): de = flatdict[j] self.assertEqual(de[1]['a'], v['a']) j = j+1 # 1000 random add or delete for j in range(1000): op = random.randint(0, 1) if op == 0: # delete i = 'i%d' % random.randint(0, 2000) if i in d: del d[i] table.delete(i) elif op == 1: # add i = 'i%d' % random.randint(0, 2000) v = {'a': random.randint(0, 500)} table.put(i, v) d[i] = v # check num of indicators self.assertEqual(table.num_indicators, len(d.keys())) flatdict = sorted(d.items(), key=lambda x: x[1]['a']) j = 0 for k, v in table.query('a', from_key=0, to_key=500, include_value=True): de = flatdict[j] # check sorting self.assertEqual(de[1]['a'], v['a']) j = j+1 # close table table.close() table = None # reopen table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') self.assertEqual(table.num_indicators, len(d.keys())) # check sort again flatdict = sorted(d.items(), key=lambda x: x[1]['a']) j = 0 for k, v in table.query('a', from_key=0, to_key=500, include_value=True): de = flatdict[j] self.assertEqual(de[1]['a'], v['a']) j = j+1 table.close()
def test_random(self): # create table table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') # local dict d = {} # add 10000 elements to the table # with an 'a' attribute in range 0,500 for i in range(NUM_ELEMENTS): value = {'a': random.randint(0, 500)} key = 'i%d' % i d[key] = value table.put(key, value) # check number of indicators added self.assertEqual(table.num_indicators, len(d.keys())) # check sorted query retrieval flatdict = sorted(d.items(), key=lambda x: x[1]['a']) j = 0 for k, v in table.query('a', from_key=0, to_key=500, include_value=True): de = flatdict[j] self.assertEqual(de[1]['a'], v['a']) j = j + 1 # 1000 random add or delete for j in range(1000): op = random.randint(0, 1) if op == 0: # delete i = 'i%d' % random.randint(0, 2000) if i in d: del d[i] table.delete(i) elif op == 1: # add i = 'i%d' % random.randint(0, 2000) v = {'a': random.randint(0, 500)} table.put(i, v) d[i] = v # check num of indicators self.assertEqual(table.num_indicators, len(d.keys())) flatdict = sorted(d.items(), key=lambda x: x[1]['a']) j = 0 for k, v in table.query('a', from_key=0, to_key=500, include_value=True): de = flatdict[j] # check sorting self.assertEqual(de[1]['a'], v['a']) j = j + 1 # close table table = None # reopen table = minemeld.ft.table.Table(TABLENAME) table.create_index('a') self.assertEqual(table.num_indicators, len(d.keys())) # check sort again flatdict = sorted(d.items(), key=lambda x: x[1]['a']) j = 0 for k, v in table.query('a', from_key=0, to_key=500, include_value=True): de = flatdict[j] self.assertEqual(de[1]['a'], v['a']) j = j + 1