Exemple #1
0
    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()
Exemple #2
0
 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)