Example #1
0
    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)
Example #2
0
 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('Несбалансированно')