2026-rff_mp/skorohodovsa/task_1/test/test_task_2.py
2026-05-25 11:27:50 +03:00

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()