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)
Beispiel #3
0
    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)
Beispiel #5
0
    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()
Beispiel #8
0
    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