def testListFamily(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.listFamily` method. """ class FamilyB(AbstractCompositeNode): __family = "B" class FamilyC(AbstractCompositeNode): __family = "C" nodeA = AbstractCompositeNode("MyNodeA") nodeB = FamilyB("MyNodeB", nodeA) nodeC = FamilyC("MyNodeC", nodeA) nodeD = FamilyB("MyNodeD", nodeC) nodeE = FamilyB("MyNodeE", nodeD) nodeF = FamilyC("MyNodeE", nodeE) familyNodes = [nodeB, nodeD, nodeE] foundNodes = nodeA.findFamily("B") for node in familyNodes: self.assertIn(node, foundNodes) familyNodes = [nodeC, nodeF] foundNodes = nodeA.findFamily("C") for node in familyNodes: self.assertIn(node, foundNodes) self.assertEqual(nodeA.findFamily("C", node=nodeE).pop(), nodeF)
def testIndexOf(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.indexOf` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB", nodeA) self.assertEqual(nodeA.indexOf(nodeB), 0)
def testListNode(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.listNode` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB", nodeA) nodeC = AbstractCompositeNode("MyNodeC", nodeA) self.assertIsInstance(nodeA.listNode(), str)
def testHasChildren(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.hasChildren` method. """ nodeA = AbstractCompositeNode("MyNodeA") self.assertFalse(nodeA.hasChildren()) nodeB = AbstractCompositeNode("MyNodeB", nodeA) self.assertTrue(nodeA.hasChildren())
def testChildrenCount(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.childrenCount` method. """ nodeA = AbstractCompositeNode("MyNodeA") self.assertEqual(nodeA.childrenCount(), 0) nodeB = AbstractCompositeNode("MyNodeB", nodeA) nodeC = AbstractCompositeNode("MyNodeC", nodeA) self.assertEqual(nodeA.childrenCount(), 2)
def testRemoveChild(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.removeChild` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB", nodeA) self.assertEqual(nodeA.removeChild(0), nodeB) self.assertListEqual(nodeA.children, []) self.assertEqual(nodeB.parent, None)
def testAddChild(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.addChild` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB") self.assertListEqual(nodeA.children, []) self.assertTrue(nodeA.addChild(nodeB)) self.assertIn(nodeB, nodeA.children) self.assertEqual(nodeB.parent, nodeA)
def testChild(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.child` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB", nodeA) nodeC = AbstractCompositeNode("MyNodeC", nodeA) self.assertEqual(nodeA.child(0), nodeB) self.assertEqual(nodeA.child(1), nodeC) self.assertEqual(nodeA.child(2), None)
def testInsertChild(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.insertChild` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB", nodeA) nodeC = AbstractCompositeNode("MyNodeC", nodeA) nodeD = AbstractCompositeNode("MyNodeD") self.assertTrue(nodeA.insertChild(nodeD, 1)) for i, node in enumerate((nodeB, nodeD, nodeC)): self.assertEqual(nodeA.indexOf(node), i)
def testFindChildren(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.findChildren` method. """ nodeA = AbstractCompositeNode("MyNodeA") nodeB = AbstractCompositeNode("MyNodeB", nodeA) nodeC = AbstractCompositeNode("MyNodeC", nodeA) nodeD = AbstractCompositeNode("MyNodeD", nodeC) self.assertListEqual(nodeA.findChildren("MyNodeD"), [nodeD]) for node in nodeA.findChildren("mynode.*", re.IGNORECASE): self.assertIn(node, (nodeB, nodeC, nodeD))
def testSortChildrenNode(self): """ This method tests :meth:`foundations.dag.AbstractCompositeNode.sortChildren` method. """ nodeA = AbstractCompositeNode("MyNodeA", attributeA=Attribute(value="A"), attributeB=Attribute(value="1")) nodeC = AbstractCompositeNode("MyNodeC", nodeA, attributeA=Attribute(value="C"), attributeB=Attribute(value="3")) nodeB = AbstractCompositeNode("MyNodeB", nodeA, attributeA=Attribute(value="B"), attributeB=Attribute(value="2")) nodeG = AbstractCompositeNode("MyNodeG", nodeB, attributeA=Attribute(value="G")) nodeE = AbstractCompositeNode("MyNodeE", nodeB, attributeA=Attribute(value="E"), attributeB=Attribute(value="5")) nodeF = AbstractCompositeNode("MyNodeF", nodeB, attributeA=Attribute(value="F"), attributeB=Attribute(value="6")) nodeD = AbstractCompositeNode("MyNodeD", nodeB, attributeA=Attribute(value="D"), attributeB=Attribute(value="4")) self.assertTrue(nodeA.sortChildren()) self.assertEqual(nodeA.children[0], nodeB) self.assertEqual(nodeA.children[1], nodeC) self.assertEqual(nodeA.children[0].children[0], nodeD) self.assertEqual(nodeA.children[0].children[1], nodeE) self.assertEqual(nodeA.children[0].children[2], nodeF) self.assertTrue(nodeA.sortChildren(reverseOrder=True)) self.assertEqual(nodeA.children[0], nodeC) self.assertEqual(nodeA.children[1], nodeB) self.assertEqual(nodeA.children[1].children[0], nodeG) self.assertEqual(nodeA.children[1].children[1], nodeF) self.assertEqual(nodeA.children[1].children[2], nodeE) self.assertEqual(nodeA.children[1].children[3], nodeD) self.assertTrue(nodeA.sortChildren(attribute="attributeA")) self.assertEqual(nodeA.children[0], nodeB) self.assertEqual(nodeA.children[1], nodeC) self.assertEqual(nodeA.children[0].children[0], nodeD) self.assertEqual(nodeA.children[0].children[1], nodeE) self.assertEqual(nodeA.children[0].children[2], nodeF) self.assertTrue(nodeA.sortChildren(attribute="attributeA", reverseOrder=True)) self.assertEqual(nodeA.children[0], nodeC) self.assertEqual(nodeA.children[1], nodeB) self.assertEqual(nodeA.children[1].children[0], nodeG) self.assertEqual(nodeA.children[1].children[1], nodeF) self.assertEqual(nodeA.children[1].children[2], nodeE) self.assertEqual(nodeA.children[1].children[3], nodeD) self.assertTrue(nodeA.sortChildren(attribute="attributeB")) self.assertEqual(nodeA.children[0], nodeB) self.assertEqual(nodeA.children[1], nodeC) self.assertEqual(nodeA.children[0].children[0], nodeD) self.assertEqual(nodeA.children[0].children[1], nodeE) self.assertEqual(nodeA.children[0].children[2], nodeF) self.assertEqual(nodeA.children[0].children[3], nodeG) self.assertTrue(nodeA.sortChildren(attribute="attributeB", reverseOrder=True)) self.assertEqual(nodeA.children[0], nodeC) self.assertEqual(nodeA.children[1], nodeB) self.assertEqual(nodeA.children[1].children[0], nodeF) self.assertEqual(nodeA.children[1].children[1], nodeE) self.assertEqual(nodeA.children[1].children[2], nodeD) self.assertEqual(nodeA.children[1].children[3], nodeG)