def test_build_lossy_table_2(self): algo = Bernstein() fds = FDList() fds.add_fd(FD(frozenset(['A', 'B']), frozenset(['C', 'D']))) fds.add_fd(FD(frozenset(['A']), frozenset(['C', 'D']))) algo.compute(fds) attr, table = algo.build_lossy_table(algo.get_relations(), fds) is_lossless, info = algo.check_print_lossy_table(attr, table) if not is_lossless: print 'The table below is not lossless' else: print 'The table below is lossless' print info if not is_lossless: new_relations = deepcopy(algo.get_relations()) first_key = algo.get_all_keys()[0] new_rel = {'key': first_key, 'attr': set([])} new_relations.append(new_rel) attr, table = algo.build_lossy_table(new_relations, fds) is_lossless, info = algo.check_print_lossy_table(attr, table) if not is_lossless: print 'The table below is not lossless' else: print 'The table below is lossless' print info
def test_build_lossy_table_2(self): algo = Bernstein() fds = FDList() fds.add_fd(FD(frozenset(['A', 'B']), frozenset(['C', 'D']))) fds.add_fd(FD(frozenset(['A']), frozenset(['C', 'D']))) algo.compute(fds) attr, table = algo.build_lossy_table(algo.get_relations(), fds) is_lossless, info = algo.check_print_lossy_table(attr, table) if not is_lossless: print 'The table below is not lossless' else: print 'The table below is lossless' print info if not is_lossless: new_relations = deepcopy(algo.get_relations()) first_key = algo.get_all_keys()[0] new_rel = {'key':first_key, 'attr':set([])} new_relations.append(new_rel) attr, table = algo.build_lossy_table(new_relations, fds) is_lossless, info = algo.check_print_lossy_table(attr, table) if not is_lossless: print 'The table below is not lossless' else: print 'The table below is lossless' print info
def test_build_lossy_table(self): algo = Bernstein() fds = FDList() fds.add_fd(FD(frozenset(['X1', 'X2']), frozenset(['A', 'D']))) fds.add_fd(FD(frozenset(['C', 'D']), frozenset(['X1', 'X2']))) fds.add_fd(FD(frozenset(['A', 'X1']), frozenset(['B']))) fds.add_fd(FD(frozenset(['B', 'X2']), frozenset(['C']))) fds.add_fd(FD(frozenset(['C']), frozenset(['A']))) algo.compute(fds) attr, table = algo.build_lossy_table(algo.get_relations(), fds) is_lossless, info = algo.check_print_lossy_table(attr, table) print info