예제 #1
0
    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.')
예제 #2
0
 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())