/
LeonBlue
/
Python_DataStructs_And_Algorithms
Обзор
Документация
Войти
/
LeonBlue
/
Python_DataStructs_And_Algorithms
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_stack.py
58 строк
2 KB
qwerty29544
Update .gitignore and README.md for project structure and documentation improvements
30 ноя 2025, 01:27
30 ноя 2025, 01:27
f68deb3
Код
Авторство
О чём код?
""" Тесты для реализации стека. """ import unittest from data_structures.stacks.stack import Stack class TestStack(unittest.TestCase): """Тестовые случаи для класса Stack.""" def setUp(self) -> None: """Настройка тестовых фикстур.""" self.stack = Stack() def test_empty_stack(self) -> None: """Тест операций с пустым стеком.""" self.assertTrue(self.stack.is_empty()) self.assertEqual(self.stack.size(), 0) self.assertIsNone(self.stack.pop()) self.assertIsNone(self.stack.peek()) def test_push_and_pop(self) -> None: """Тест операций push и pop.""" self.stack.push(1) self.stack.push(2) self.stack.push(3) self.assertFalse(self.stack.is_empty()) self.assertEqual(self.stack.size(), 3) self.assertEqual(self.stack.pop(), 3) self.assertEqual(self.stack.pop(), 2) self.assertEqual(self.stack.pop(), 1) self.assertTrue(self.stack.is_empty()) def test_peek(self) -> None: """Тест операции peek.""" self.stack.push(10) self.stack.push(20) self.assertEqual(self.stack.peek(), 20) self.assertEqual(self.stack.size(), 2) # Размер не должен измениться self.assertEqual(self.stack.pop(), 20) def test_lifo_order(self) -> None: """Тест того, что стек следует принципу LIFO (Последний пришел - первый ушел).""" items = [1, 2, 3, 4, 5] for item in items: self.stack.push(item) popped_items = [] while not self.stack.is_empty(): popped_items.append(self.stack.pop()) self.assertEqual(popped_items, [5, 4, 3, 2, 1]) if __name__ == "__main__": unittest.main()