def test_node_interactions(self): nn = ng.NNModule() dfg = nn.dataFlow test1 = dfg.createNode(ng.Operator("test1")) test2 = dfg.createNode(ng.Operator("test2")) x = dfg.createNode(ng.Data("x")) dfg.createEdge(test1, x) dfg.createEdge(x, test2) p = test2.getOperatorPredecessors() assert len(p) == 1 assert p[0] == test1 # Add another node test3 = dfg.createNode(ng.Operator("test3")) y = dfg.createNode(ng.Data("y")) dfg.createEdge(test3, y) dfg.createEdge(y, test2) p = test2.getOperatorPredecessors() assert len(p) == 2 assert test1 in p assert test3 in p # Successors assert len(test2.getOperatorSuccessors()) == 0 assert len(test1.getOperatorSuccessors()) == 1 assert test1.getOperatorSuccessors()[0] == test2 # Check all the nodes are valid (pybind ownership test) for node in [test1, test2, test3]: assert node.isOperator() for node in [x, y]: assert node.isTensor()
def test_createUniqueDataNode(self): net = core.Net("name") nn = ng.NNModule(net) n1 = nn.createUniqueDataNode("a") self.assertEqual(n1.name[0], "a") n2 = nn.dataFlow.createNode(ng.Operator("test1")) nn.createEdge(n1, n2) n3 = nn.createUniqueDataNode("a") nn.createEdge(n2, n3) self.assertEqual(n3.name[0], "a") self.assertNotEqual(n1.name, n3.name)