示例#1
0
def test_nodes_are_only_added_once():
    graph = Graph()
    node = NodeForTesting()
    for i in range(10):
        graph.add_node(node)

    assert len(graph.nodes) == 1
示例#2
0
def test_node_names_on_graph_have_to_be_unique():
    graph = Graph()
    same_name = "Same Name"
    node_1 = NodeForTesting(name=same_name)
    graph.add_node(node_1)
    node_2 = NodeForTesting(name=same_name)

    with pytest.raises(Exception):
        graph.add_node(node_2)
示例#3
0
def test_nodes_in_graph_can_have_same_name():
    graph = Graph()
    nodes = []
    for i in range(100):
        node = NodeForTesting("SameName")
        graph.add_node(node)
        nodes.append(node)

    print(graph.node("SameName"))
示例#4
0
def test_nodes_can_be_accessed_via_name_through_indexing():
    graph = Graph()
    test_name = "TestName"
    node = NodeForTesting(name=test_name)
    graph.add_node(node)

    assert graph[test_name] == node

    with pytest.raises(Exception):
        graph["Does not exist"]
示例#5
0
def test_nested_graphs_expand_sub_graphs():
    """Nested Graphs expand all nodes of their sub graphs on evaluation."""
    @function_to_node(outputs=["out_put"])
    def N(in_put_1, in_put_2):
        return {"out_put": "G1_Node1"}

    # G 3 #############################
    #
    G3 = Graph(name="G3")
    N5 = N(name="N5")
    N4 = N(name="N4")
    G3.add_node(N5)
    G3.add_node(N4)
    N4.outputs["out_put"] >> N5.inputs["in_put_1"]

    # G 2 #############################
    #
    G2 = Graph(name="G2")
    N3 = N(name="N3")
    N2 = N(name="N2")
    N6 = N(name="N6")
    G2.add_node(N3)
    G2.add_node(N2)
    G2.add_node(N6)
    G2.add_node(G3)
    N3.outputs["out_put"] >> N4.inputs["in_put_1"]
    N2.outputs["out_put"] >> N4.inputs["in_put_2"]
    N5.outputs["out_put"] >> N6.inputs["in_put_1"]

    # G 1 #############################
    #
    G1 = Graph(name="G1")
    OutputPlug('out_put', G1)
    N1 = N(name="N1")
    N7 = N(name="N7")
    G1.add_node(N1)
    G1.add_node(N7)
    G1.add_node(G2)

    N1.outputs["out_put"] >> N3.inputs["in_put_1"]
    N6.outputs["out_put"] >> N7.inputs["in_put_1"]
    N1.outputs["out_put"] >> N7.inputs["in_put_2"]

    order = [['N1', 'N2'], ['N3'], ['N4'], ['N5'], ['N6'], ['N7']]

    for i, nodes in enumerate(G1.evaluation_matrix):
        assert sorted([n.name for n in nodes]) == sorted(order[i])
示例#6
0
def test_nodes_can_be_added_to_graph():
    """Nodes add themselves to their graph as their parent."""
    graph = Graph()
    graph.add_node(NodeForTesting())
    assert 1 == len(graph.nodes)