def test_get_children(self): # # Binomial Tree # node = Tree(n_children=2) node.split() count = 0 pos = [0, 1] for child in node.get_children(): self.assertEqual(child.get_node_position(), pos[count],\ 'Incorrect child.') count += 1 # Reversed count = 0 for child in node.get_children(reverse=True): self.assertEqual(child.get_node_position(), pos[-1 - count]) count += 1 # Flagged child_0 = node.get_child(0) child_0.mark(1) for child in node.get_children(flag=1): self.assertEqual(child, child_0, \ 'The only marked child is child_0') # # Quadtree # node = Tree(n_children=4) node.split() count = 0 pos = [0, 1, 2, 3] for child in node.get_children(): self.assertEqual(child.get_node_position(), pos[count],\ 'Incorrect child.') count += 1 # # Now remove child # node.delete_children(position=0) count = 0 for child in node.get_children(): count += 1 self.assertEqual(count, 3, 'There should only be 3 children left.') # # Node with no children # node = Tree(n_children=4) for child in node.get_children(): print('Hallo') # # Try a logical statement # self.assertFalse(any([child.is_marked(1) for \ child in node.get_children()]), \ 'No marked children because there are none.')
def test_delete_children(self): # # Delete child 2 # node = Tree(n_children=4) node.split() node.delete_children(2) self.assertIsNone(node.get_child(2)) # # Delete all children # node.delete_children() self.assertFalse(node.has_children())