def test_peek(self): new_stack = Stack() new_stack.add(5) new_stack.add(10) self.assertIs(new_stack.peek(), 10) new_stack.add(20) self.assertIs(new_stack.peek(), 20)
def test_peek(self): my_stack = Stack() my_stack.push(1) my_stack.push(2) my_stack.push(3) data = my_stack.stack + [my_stack.peek()] res = [3, 2, 1, 3] self.assertEqual( data, res)
def test_peek_empty_stack(self): stack = Stack() test_value = stack.peek() result_list = stack.stack check_list = [] self.assertEqual( result_list, check_list, "Testing 'Peek'. Peek from empty stack. Stack lists not equal") self.assertIsNone( test_value, "Testing 'Peek'. Peek from empty stack. Peek value is incorrect")
def test_peek_normal_stack(self): stack = Stack() stack.push(1) stack.push(2) stack.push(3) test_value = stack.peek() check_value = 3 result_list = stack.stack check_list = [3, 2, 1] self.assertEqual( result_list, check_list, "Testing 'Peek'. Peek from normal stack. Stack lists not equal") self.assertEqual( test_value, check_value, "Testing 'Peek'. Peek from normal stack. Peek value is incorrect")
def check_balance(input_text, brackets=BRACKETS): brackets_stack = Stack() brackets_stack.list_of_values = [] open_brackets = brackets[::2] close_brackets = brackets[1::2] # Проходим по каждому символу входного текста for symbol in input_text: # если символ это открывающая скобка, то добавляем его в стек if symbol in open_brackets: brackets_stack.push(open_brackets.index(symbol)) # или если символ это закрывающая скобка elif symbol in close_brackets: # и если стек не пуст и последняя добавленная открывающая скобка такого же типа, то удаляем if (not brackets_stack.is_empty()) and (brackets_stack.peek() == close_brackets.index(symbol)): brackets_stack.pop() # если не такого же типа, то сразу выводим ошибку else: return print('Несбалансированно') # проверяем стек, если он пустой, то возвращаем 'Сбалансированно', иначе - 'Несбалансированно' if not brackets_stack.list_of_values: return print('Сбалансированно') else: return print('Несбалансированно')