示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
    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