コード例 #1
0
    def test_top_BoundedMinHeap_freq(self):
        graph = Graph('test', verbose=False)
        searcher = Searcher(graph)

        heap = searcher.BoundedMinHeap(
            bound=10,
            key=lambda rule: len(graph.candidates[rule]['ca_to_size']))
        for rule in searcher.candidates:
            heap.push(rule)
        rules = heap.get_reversed()
        for i in range(len(rules) - 1):
            assert (len(graph.candidates[rules[i]]['ca_to_size']) >= len(
                graph.candidates[rules[i + 1]]['ca_to_size']))

        heap = searcher.BoundedMinHeap(
            bound=5,
            key=lambda rule: len(graph.candidates[rule]['ca_to_size']))
        for rule in searcher.candidates:
            heap.push(rule)
        rules = heap.get_reversed()
        for i in range(len(rules) - 1):
            assert (len(graph.candidates[rules[i]]['ca_to_size']) >= len(
                graph.candidates[rules[i + 1]]['ca_to_size']))

        heap = searcher.BoundedMinHeap(
            bound=15,
            key=lambda rule: len(graph.candidates[rule]['ca_to_size']))
        for rule in searcher.candidates:
            heap.push(rule)
        rules = heap.get_reversed()
        for i in range(len(rules) - 1):
            assert (len(graph.candidates[rules[i]]['ca_to_size']) >= len(
                graph.candidates[rules[i + 1]]['ca_to_size']))