forked from UNN/2026-rff_mp
60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
import unittest
|
|
import sys
|
|
import os
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
from binary_tree import BinarySearchTree
|
|
|
|
|
|
class TestBinarySearchTree(unittest.TestCase):
|
|
def setUp(self):
|
|
self.bst = BinarySearchTree()
|
|
self.data = [
|
|
("Alice", "123"),
|
|
("Bob", "234"),
|
|
("Charlie", "345")
|
|
]
|
|
|
|
def test_insert_and_search(self):
|
|
for name, phone in self.data:
|
|
self.bst.insert(name, phone)
|
|
|
|
for name, phone in self.data:
|
|
self.assertEqual(self.bst.search(name), phone)
|
|
|
|
def test_search_not_found(self):
|
|
self.bst.insert("Alice", "123")
|
|
self.assertIsNone(self.bst.search("Bob"))
|
|
|
|
def test_delete(self):
|
|
self.bst.insert("Alice", "123")
|
|
self.assertTrue(self.bst.delete("Alice"))
|
|
self.assertIsNone(self.bst.search("Alice"))
|
|
self.assertEqual(self.bst.get_size(), 0)
|
|
|
|
def test_size(self):
|
|
self.assertEqual(self.bst.get_size(), 0)
|
|
self.bst.insert("Alice", "123")
|
|
self.assertEqual(self.bst.get_size(), 1)
|
|
self.bst.insert("Bob", "234")
|
|
self.assertEqual(self.bst.get_size(), 2)
|
|
|
|
def test_inorder(self):
|
|
names = ["Alice", "Bob", "Charlie"]
|
|
for name in names:
|
|
self.bst.insert(name, "123")
|
|
|
|
result = self.bst.inorder()
|
|
self.assertEqual(len(result), 3)
|
|
for i, name in enumerate(names):
|
|
self.assertEqual(result[i]['name'], name)
|
|
|
|
def test_clear(self):
|
|
self.bst.insert("Test", "123")
|
|
self.assertFalse(self.bst.is_empty())
|
|
self.bst.clear()
|
|
self.assertTrue(self.bst.is_empty())
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |