Exemple #1
0
 def test_toggle_with_links_unmatched_names(self, graph, sum_op, square_op, negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     link1 = (sum_op, square_op, "sum", "n")
     link2 = (square_op, negative_op, "square", "num")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.toggle_disabled(sum_op)
     assert graph.disabled(sum_op) is True
     assert return_value == []
     assert graph.links() == []
     return_value = graph.toggle_disabled(sum_op)
     assert graph.disabled(sum_op) is False
     assert return_value == []
     assert graph.links() == []
 def test_toggle_with_links(self, graph, a_op, b_op, c_op):
     graph.add_operations(a_op, b_op, c_op)
     link1 = (a_op, b_op, "n", "n")
     link2 = (b_op, c_op, "n", "n")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.toggle_disabled(a_op)
     assert graph.disabled(a_op) is True
     assert return_value == []
     assert graph.links() == [link2]
     return_value = graph.toggle_disabled(a_op)
     assert graph.disabled(a_op) is False
     assert return_value == []
     assert graph.links() == [link1, link2]
Exemple #3
0
 def test_toggle_disabled_remove_false(self, graph, sum_op, square_op,
                                       negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     link1 = (sum_op, square_op, "sum", "n")
     link2 = (square_op, negative_op, "square", "num")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.toggle_disabled(sum_op, remove_orphan_links=False)
     assert graph.disabled(sum_op) is True
     assert return_value == graph.operation_links(sum_op)
     assert graph.links() == [link1, link2]
     return_value = graph.toggle_disabled(sum_op, remove_orphan_links=False)
     assert graph.disabled(sum_op) is False
     assert return_value == []
     assert graph.links() == [link1, link2]
 def test_clear_operation_links_end(self, graph, sum_op, square_op,
                                    negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     graph.add_link(sum_op, square_op, "sum", "n")
     graph.add_link(square_op, negative_op, "square", "num")
     graph.clear_operation_links(negative_op)
     assert graph.links() == [(sum_op, square_op, "sum", "n")]
Exemple #5
0
 def test_toggle_remove_false_unmatched_names(self, graph, sum_op, square_op, negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     link1 = (sum_op, square_op, "sum", "n")
     link2 = (square_op, negative_op, "square", "num")
     graph.add_link(*link1)
     graph.add_link(*link2)
     graph._pretty_print()
     return_value = graph.toggle_disabled(sum_op, remove_orphan_links=False)
     graph._pretty_print()
     assert graph.disabled(sum_op) is True
     assert return_value == [link1]
     assert graph.links() == []
     return_value = graph.toggle_disabled(sum_op, remove_orphan_links=False)
     assert graph.disabled(sum_op) is False
     assert return_value == []
     assert graph.links() == []
Exemple #6
0
 def test_remove_operation_linked(self, graph, sum_op, square_op, negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     graph.add_link(sum_op, square_op, "sum", "n")
     graph.add_link(square_op, negative_op, "square", "num")
     graph.remove_operation(sum_op)
     assert graph.operations == [square_op, negative_op]
     assert graph.links() == [(square_op, negative_op, "square", "num")]
 def test_remove_false(self, graph, a_op, b_op, c_op):
     graph.add_operations(a_op, b_op, c_op)
     link1 = (a_op, b_op, "n", "n")
     link2 = (b_op, c_op, "n", "n")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.set_disabled(a_op, remove_orphan_links=False)
     assert graph.disabled(a_op) is True
     assert graph.links() == [link2]
     assert return_value == [link1]
 def test_value_false(self, graph, a_op, b_op, c_op):
     graph.add_operations(a_op, b_op, c_op)
     link1 = (a_op, b_op, "n", "n")
     link2 = (b_op, c_op, "n", "n")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.set_disabled(sum_op, value=False)
     assert graph.disabled(sum_op) is False
     assert graph.links() == [link1, link2]
     assert return_value == []
Exemple #9
0
 def test_value_and_remove_false_unmatched_names(self, graph, sum_op, square_op, negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     link1 = (sum_op, square_op, "sum", "n")
     link2 = (square_op, negative_op, "square", "num")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.set_disabled(sum_op, value=False, remove_orphan_links=False)
     assert graph.disabled(sum_op) is False
     assert graph.links() == []
     assert return_value == []
Exemple #10
0
 def test_set_disabled_value_false(self, graph, sum_op, square_op,
                                   negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     link1 = (sum_op, square_op, "sum", "n")
     link2 = (square_op, negative_op, "square", "num")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.set_disabled(sum_op, value=False)
     assert graph.disabled(sum_op) is False
     assert graph.links() == [link1, link2]
     assert return_value == []
Exemple #11
0
 def test_set_disabled_default_with_links(self, graph, sum_op, square_op,
                                          negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     link1 = (sum_op, square_op, "sum", "n")
     link2 = (square_op, negative_op, "square", "num")
     graph.add_link(*link1)
     graph.add_link(*link2)
     return_value = graph.set_disabled(sum_op)
     assert graph.disabled(sum_op) is True
     assert graph.links() == [link2]
     assert return_value == []
    def test_links_multiple(self, graph, sum_op):
        def my_func(x: int, y: int) -> (int, int):
            return y, x

        my_op = operation(my_func, output_names=("y", "x"))()
        graph.add_operations(sum_op, my_op)
        link1 = (my_op, sum_op, "y", "n1")
        link2 = (my_op, sum_op, "x", "n2")
        graph.add_link(*link1)
        graph.add_link(*link2)
        assert graph.links() == [link1, link2]
Exemple #13
0
    def test_auto_connect_all_matching_names_and_types(self, graph):
        def my_increment(n: int) -> int:
            return n + 1

        def my_decrement(increment: int) -> int:
            return increment - 1

        increment_op = operation(my_increment, output_names=("increment",))()
        decrement_op = operation(my_decrement, output_names=("end_result",))()
        graph.add_operations(increment_op, decrement_op)
        graph.auto_connect_all()
        assert graph.links() == [(increment_op, decrement_op, "increment", "increment")]
    def test_auto_connect_all_only_matching_types(self, graph):
        def my_increment(n: int) -> int:
            return n + 1

        def my_decrement(m: int) -> int:
            return m - 1

        increment_op = operation(my_increment, output_names=("increment", ))()
        decrement_op = operation(my_decrement, output_names=("decrement", ))()
        graph.add_operations(increment_op, decrement_op)
        graph.auto_connect_all()
        assert graph.links() == []
 def test_default_with_links(self, graph, a_op, b_op, c_op):
     graph = Graph()
     graph.add_operations(a_op, b_op, c_op)
     link_ab = (a_op, b_op, "n", "n")
     link_bc = (b_op, c_op, "n", "n")
     graph.add_link(*link_ab)
     graph.add_link(*link_bc)
     orphan_links = graph.set_disabled(a_op)
     assert graph.disabled(a_op) is True
     assert graph.disabled(b_op) is False
     assert graph.disabled(c_op) is False
     assert graph.links() == [link_bc]
     assert orphan_links == []
 def test_clear_operation_links_empty(self, graph, sum_op):
     graph.clear_operation_links(sum_op)
     assert graph.links() == []
     assert graph.get_outbound_links(sum_op) == {}
     assert graph.get_inbound_links(sum_op) == {}
 def test_links_empty(self, graph):
     assert graph.links() == []
 def test_links(self, graph, sum_op, square_op):
     graph.add_operations(sum_op, square_op)
     link = (sum_op, square_op, "sum", "n")
     graph.add_link(*link)
     assert graph.links() == [link]
 def test_clear_links_empty(self, graph):
     # TODO should this raise an exception
     graph.clear_links()
     assert graph.links() == []
 def test_auto_connect_all_none_matching(self, graph, sum_op, square_op,
                                         negative_op):
     graph.add_operations(sum_op, square_op, negative_op)
     graph.auto_connect_all()
     assert graph.links() == []
 def test_clear_operation_links_unlinked_operation(self, graph, sum_op,
                                                   square_op):
     # TODO should this raise an exception?
     graph.add_operations(sum_op, square_op)
     graph.clear_operation_links(sum_op)
     assert graph.links() == []