Exemplo n.º 1
0
def test_balance_on_inserts():
    """Test balance after inserts."""
    new_tree = BinarySearchTree()
    assert new_tree.balance() == 0
    new_tree.insert(2)
    assert new_tree.balance() == 0
    new_tree.insert(1)
    assert new_tree.balance() == -1
    new_tree.insert(3)
    assert new_tree.balance() == 0
    new_tree.insert(4)
    assert new_tree.balance() == 1
Exemplo n.º 2
0
def test_balance():
    tree = BinarySearchTree()
    tree.insert(2)
    tree.insert(4)
    tree.insert(5)
    tree.insert(1)
    assert tree.balance() == -1
Exemplo n.º 3
0
    def test___init__(self):
        bst1 = BinarySearchTree()

        self.assertIsNone(bst1.head)
        self.assertEqual(bst1.contains(0), False)
        self.assertEqual(bst1.contains(None), False)
        self.assertEqual(bst1.size(), 0)
        self.assertEqual(bst1.depth(), 0)
        self.assertEqual(bst1.balance(), 0)
Exemplo n.º 4
0
def test_tree_balance_returns_correctly():
    """Test balance function returns currect balance."""
    from bst import BinarySearchTree
    bst = BinarySearchTree()
    bst.insert(85)
    bst.insert(55)
    bst.insert(88)
    bst.insert(2)
    bst.insert(79)
    bst.insert(50)
    assert bst.balance() == 2
Exemplo n.º 5
0
def test_tree_autobalances():
    """Test that a right skewed tree is balanced after many insertions."""
    tree = BinarySearchTree()
    tree.insert(50)
    tree.insert(60)
    tree.insert(70)
    tree.insert(80)
    tree.insert(90)
    tree.insert(100)
    tree.insert(66)
    tree.insert(59)
    tree.insert(89)
    assert abs(tree.balance()) <= 1
Exemplo n.º 6
0
    def test_balance_nobalance(self):
        bst1 = BinarySearchTree()
        bst2 = BinarySearchTree()
        bst3 = BinarySearchTree()
        bst4 = BinarySearchTree()
        bst5 = BinarySearchTree()
        bst6 = BinarySearchTree()

        bst1.insert(0)
        bst1.insert(1)
        bst1.insert(2)

        self.assertEqual(bst1.balance(), 2)

        bst2.insert(1)
        bst2.insert(2)
        bst2.insert(0)

        self.assertEqual(bst2.balance(), 0)

        bst3.insert(2)
        bst3.insert(0)
        bst3.insert(1)

        self.assertEqual(bst3.balance(), -2)

        bst4.insert(2)
        bst4.insert(1)
        bst4.insert(0)

        self.assertEqual(bst4.balance(), -2)

        bst5.insert(0)
        bst5.insert(2)
        bst5.insert(1)

        self.assertEqual(bst5.balance(), 2)

        bst6.insert(1)
        bst6.insert(0)
        bst6.insert(2)

        self.assertEqual(bst6.balance(), 0)
Exemplo n.º 7
0
def test_balance_w_no_left_nodes():
    """Test the balance of a tree with only a root and its right child."""
    b_tree = BinarySearchTree()
    b_tree.insert(17)
    b_tree.insert(43)
    assert b_tree.balance() == 1
Exemplo n.º 8
0
def test_balance_method_on_pos_balance_with_two_sides():
    """Test the balance method on a positively balanced bst."""
    new_bst = BinarySearchTree([10, 0, -10, -20, 20])
    assert new_bst.balance() == 2
Exemplo n.º 9
0
def test_balance_method_on_neg_balance_with_two_sides():
    """Test the balance method on a negatively balanced bst."""
    new_bst = BinarySearchTree([10, 20, 30, 0])
    assert new_bst.balance() == -1
Exemplo n.º 10
0
def test_balance_method_on_mt_bst():
    """Test the balane method on a mt bst."""
    new_bst = BinarySearchTree()
    assert new_bst.balance() == 0
Exemplo n.º 11
0
def test_balance_right_heavy():
    contents = [6, 8, 10]
    bst = BinarySearchTree(contents)
    assert bst.balance() == -2
Exemplo n.º 12
0
def test_bst_balance_empty():
    from bst import BinarySearchTree
    tree = BinarySearchTree()
    assert tree.balance() == 0