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
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)
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"))
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"]
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])
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)