def test_get_attributes_closure(self):
        complete_attrs = set(list('ABCDEFGHI'))
        dep_pairs = [('A', 'B'), ('A', 'C'), ('CG', 'H'), ('CG', 'I'),
                     ('B', 'H')]
        deps = dependency_generater(dep_pairs)

        r = Relation(attrs=complete_attrs, deps=deps)

        attrs = set(['A', 'G'])
        expect_closure = set(['A', 'B', 'C', 'G', 'H', 'I'])
        closure = r.get_attrs_closure(attrs)
        self.assertEqual(expect_closure, closure)
Beispiel #2
0
import os
import psutil
from timeit import timeit
from functools import partial

from relation import Relation, dependency_generater

complete_attrs = set(list('ABCDEFGHI'))
dep_pairs = [('A', 'B'), ('A', 'C'), ('CG', 'H'), ('CG', 'I'), ('B', 'H')]
deps = dependency_generater(dep_pairs)

r = Relation(attrs=complete_attrs, deps=deps)

attrs = set(['A', 'G'])
expect_closure = set(['A', 'B', 'C', 'G', 'H', 'I'])
closure = r.get_attrs_closure(attrs)

time_cost = timeit(partial(r.get_attrs_closure, attrs), number=100000)
process = psutil.Process(os.getpid())
print(time_cost)
# print(process.memory_info().rss / 2**20)