def testInterface(): root = _coral.Node("root", None) node = _coral.Node("testNode", root) attribute = _coral.Attribute("testAttr", node) node.addInputAttribute(attribute) node1 = _coral.Node("testNode1", node) node.addNode(node1) assert node1.parent().name() == node.name() assert node.nodeAt(0).name() == node1.name() assert node.inputAttributeAt(0).name() == attribute.name() assert node.containsNode(node1) assert len(node.nodes()) == 1 node.removeNode(node1) assert node.containsNode(node1) == False attribute1 = _coral.Attribute("testAttr1", root) root.addOutputAttribute(attribute1) _coral.NetworkManager.connect(attribute1, attribute) assert attribute1.isConnectedTo(attribute) assert attribute.input().name() == attribute1.name() nestedNode = _coral.Node("nestedNode", node) assert nestedNode.fullName() == "root.testNode.nestedNode"
def testObjectsLifespan(): node0 = _coral.Node("node0", None) node1 = _coral.Node("node1", node0) node0.addNode(node1) print "testing children nodes are kept alive by father node" del node1 assert _coral.NetworkManager.objectCount() == 2 print "testing children nodes are destroyed by father node" del node0 assert _coral.NetworkManager.objectCount() == 0 print "testing input attributes are destroyed by father node" node = _coral.Node("node", None) attribute = _coral.Attribute("testAttr", node) node.addInputAttribute(attribute) del node del attribute assert _coral.NetworkManager.objectCount() == 0 print "testing output attributes are destroyed by father node" node = _coral.Node("node", None) attribute = _coral.Attribute("testAttr", node) node.addOutputAttribute(attribute) del node del attribute assert _coral.NetworkManager.objectCount() == 0
def testOwnership(): n1 = _coral.Node("test", None) n2 = _coral.Node("nested", None) n1.addNode(n2) del n2 assert n1.nodeAt(0)
def testObjectsHierarchy(): parentNode = _coral.Node("parentNode", None) childNode = _coral.Node("childNode", parentNode) parentNode.addNode(childNode) assert childNode.fullName() == "parentNode.childNode" parentNode.removeNode(childNode) assert childNode.fullName() == "childNode"
def testSpecializationBug1(): n = _coral.Node("n", None) a = _coral.Attribute("a", n) n.addOutputAttribute(a) n._setAttributeAllowedSpecializations(a, ["Spec1", "Spec3"]) n1 = _coral.Node("n1", None) a1 = _coral.Attribute("a1", n1) n1.addInputAttribute(a1) n1._setAttributeAllowedSpecializations(a1, ["Spec1", "Spec2"]) _coral.NetworkManager.connect(a, a1) assert a1.specialization() == ["Spec1"] and a.specialization() == ["Spec1"]
def testPythonOverloading(): node = TestNode("node", None) parentNode = _coral.Node("testNode", None) attr = TestAttribute("attr", parentNode) parentNode.addOutputAttribute(attr) _coral.NetworkManager.connect(attr, node.inAttr) print "testing returned attribute is python subclass" assert type(node.inAttr.input()) == TestAttribute print "testing python overrides c++ virtual functions" attr.value().value = 5 attr.valueChanged() assert node.outAttr.value().value == 5