def test_add_node_no_children(self): c1 = Dummy(True) n1 = ConditionNode([c1]) n2 = ConditionNode([], OR) n1.add(n2, AND) self.assertEqual(n1.children, [c1, n2]) self.assertEqual(n1.connector, AND) n3 = ConditionNode([c1]) n3.add(n2, OR) self.assertEqual(n3.children, [c1]) self.assertEqual(n3.connector, OR)
def test_add_node_one_child(self): c1, c2 = Dummy(True), Dummy(True) n1 = ConditionNode([c2]) n2 = ConditionNode([c1], OR) n1.add(n2, AND) self.assertEqual(n1.children, [c2, c1]) self.assertEqual(n1.connector, AND) n3 = ConditionNode([c2]) n3.add(n2, OR) self.assertEqual(n3.children, [c2, c1]) self.assertEqual(n3.connector, OR)
def test_add_node_many_children(self): c1, c2, c3 = Dummy(True), Dummy(True), Dummy(False) n1 = ConditionNode([c3]) n2 = ConditionNode([c1, c2], OR) n1.add(n2, AND) self.assertEqual(n1.children, [c3, n2]) self.assertEqual(n1.connector, AND) n3 = ConditionNode([c3]) n3.add(n2, OR) self.assertEqual(n3.children, [c3, c1, c2]) self.assertEqual(n3.connector, OR)
def test_add_third(self): c1, c2, c3 = Dummy(True), Dummy(True), Dummy(False) n = ConditionNode([c1, c2]) n.add(c3, AND) self.assertEqual(n.children, [c1, c2, c3]) self.assertEqual(n.connector, AND) # but when you change the connector... c4 = Dummy(False) n.add(c4, OR) self.assertEqual(len(n), 2) self.assertEqual(n.connector, OR) self.assertIs(n.children[1], c4) self.assertEqual(n.children[0].children, [c1, c2, c3]) self.assertEqual(n.children[0].connector, AND)
def test_add_first(self): # Not a function I wrote, but I need to make sure they don't change how it works. n = ConditionNode() child = Dummy(True) n.add(child, OR) self.assertEqual(n.children, [child]) self.assertEqual(n.connector, OR) # same thing again should do nothing... n.add(child, OR) self.assertEqual(n.children, [child]) self.assertEqual(n.connector, OR) # even with different connector n.add(child, AND) self.assertEqual(n.children, [child]) self.assertEqual(n.connector, AND)