コード例 #1
0
ファイル: tests.py プロジェクト: rzfortes/cs167-119
class BinarySearchTreeDeleteTestCase(unittest.TestCase):
    def setUp(self):
        self.tree = BinarySearchTree()
        self.seven = self.tree.insert(7, 'seven')
        self.fifteen = self.tree.insert(15, 'fifteen')
        self.eight = self.tree.insert(8, 'eight')
        self.fourteen = self.tree.insert(14, 'fourteen')
        self.nine = self.tree.insert(9, 'nine')

    def test_return_deleted_node(self):
        delete_node = self.tree.delete(8)
        self.assertEqual(delete_node, self.eight)

    def test_set_deleted_node_properties_to_none(self):
        delete_node = self.tree.delete(8)
        self.assertEqual(delete_node.parent, None)
        self.assertEqual(delete_node.left, None)
        self.assertEqual(delete_node.right, None)

    def test_replace_deleted_node_with_smaller_child(self):
        self.tree.delete(8)

        # in this tree, node "14" should replace the deleted node "8"
        self.assertEqual(self.fifteen.left, self.fourteen)
        self.assertEqual(self.fourteen.parent, self.fifteen)
        self.assertEqual(self.fourteen.left, self.nine)
コード例 #2
0
ファイル: tests.py プロジェクト: rzfortes/cs167-119
class BinarySearchTreeTraversalsTestCase(unittest.TestCase):
    def setUp(self):
        self.tree = BinarySearchTree()
        self.tree.insert(7, '7')
        self.tree.insert(4, '4')
        self.tree.insert(9, '9')
        self.tree.insert(2, '2')
        self.tree.insert(5, '5')
        self.tree.insert(8, '8')
        self.tree.insert(12, '12')

    def test_preorder_should_return_array_of_preordered_values(self):
        values = self.tree.traverse_preorder()
        expected = ['7', '4', '2', '5', '9', '8', '12']
        self.assertSequenceEqual(values, expected)

    def test_inorder_should_return_array_of_inordered_values(self):
        values = self.tree.traverse_inorder()
        expected = ['2', '4', '5', '7', '8', '9', '12']
        self.assertSequenceEqual(values, expected)

    def test_postorder_should_return_array_of_postordered_values(self):
        values = self.tree.traverse_postorder()
        expected = ['2', '5', '4', '8', '12', '9', '7']
        self.assertSequenceEqual(values, expected)
コード例 #3
0
ファイル: tests.py プロジェクト: rzfortes/cs167-119
class BinarySearchTreeGetTestCase(unittest.TestCase):
    def setUp(self):
        self.tree = BinarySearchTree()
        self.tree.insert(2, 'two')
        self.tree.insert(1, 'one')
        self.tree.insert(3, 'three')

    def test_return_value_of_the_given_key(self):
        value = self.tree.get(2)
        self.assertEqual(value, 'two')

        value = self.tree.get(1)
        self.assertEqual(value, 'one')

        value = self.tree.get(3)
        self.assertEqual(value, 'three')
コード例 #4
0
ファイル: tests.py プロジェクト: rzfortes/cs167-119
class BinarySearchTreeInsertTestCase(unittest.TestCase):
    def setUp(self):
        self.tree = BinarySearchTree()

    def test_first_inserted_value_should_be_root(self):
        # insert a node
        inserted_node = self.tree.insert(1, 'one')
        # inserted node should be root
        self.assertEqual(self.tree.root, inserted_node)

        # insert another node
        new_node = self.tree.insert(2, '2')
        # root should be inserted_root pa rin
        self.assertEqual(self.tree.root, inserted_node)

    def test_should_set_node_properties_properly(self):
        root_two = self.tree.insert(2, 'two')
        self.assertEqual(root_two.parent, None)
        self.assertEqual(root_two.left, None)
        self.assertEqual(root_two.right, None)

        # insert another node
        one = self.tree.insert(1, 'one')
        self.assertEqual(one.parent, root_two)
        self.assertEqual(one.left, None)
        self.assertEqual(one.right, None)

        # root_two left child should be one
        self.assertEqual(root_two.left, one)

        # insert new node
        four = self.tree.insert(4, 'four')
        self.assertEqual(four.parent, root_two)
        self.assertEqual(four.left, None)
        self.assertEqual(four.right, None)

        # root_two right child should be four
        self.assertEqual(root_two.right, four)
コード例 #5
0
ファイル: tests.py プロジェクト: rzfortes/cs167-119
class BinarySearchTreeMinimumMaximumTestCase(unittest.TestCase):
    def setUp(self):
        self.tree = BinarySearchTree()
        self.tree.insert(7, 'seven')
        self.tree.insert(15, 'fifteen')
        self.tree.insert(8, 'eight')
        self.tree.insert(14, 'fourteen')

    def test_minimum_should_return_the_value_of_the_minimum_key_in_the_tree(
            self):
        minimum = self.tree.minimum()
        self.assertEqual(minimum, 'seven')

    def test_maximum_should_return_the_value_of_the_maximum_key_in_the_tree(
            self):
        maximum = self.tree.maximum()
        self.assertEqual(maximum, 'fifteen')