import unittest
from avltree import AVLTree
class TestAVLTree(unittest.TestCase):
def setup(self):
#balanced tree
self.tree = AVLTree()
self.tree.put(5,"five")
self.tree.put(4,"four")
self.tree.put(6,"six")
def test_rotate(self):
#left rotation
tree = AVLTree()
tree.put(5,"five")
tree.put(6,"six")
self.assertEqual(tree.root.key, 5)
tree.put(7,"seven")
self.assertEqual(tree.root.key, 6)
self.assertEqual(tree.root.leftChild.key, 5)
self.assertEqual(tree.root.rightChild.key, 7)
#right rotation
tree2 = AVLTree()
tree2.put(5,"five")
tree2.put(4,"four")
self.assertEqual(tree2.root.key, 5)
tree2.put(3,"three")
self.assertEqual(tree2.root.key, 4)
self.assertEqual(tree2.root.leftChild.key, 3)
self.assertEqual(tree2.root.rightChild.key, 5)
def test_remove(self):
self.setup()
self.tree.put(3,"three")
self.tree.put(7,"seven")
print(self.tree.getAsList())
del self.tree[3]
print(self.tree.getAsList())
self.assertTrue(self.tree.checkIfBalanced())
if __name__ == "__main__":
unittest.main()