def test_pop_first(self):
     s = Deque(['A', 'B', 'C'])
     assert s.pop_first() == 'A'
     assert s.length() == 2
     assert s.pop_first() == 'B'
     assert s.length() == 1
     assert s.pop_first() == 'C'
     assert s.length() == 0
     assert s.is_empty() is True
     with self.assertRaises(ValueError):
         s.pop_first()
 def test_peek_last(self):
     s = Deque()
     assert s.peek_last() is None
     s.append('A')
     assert s.peek_last() == 'A'
     s.append('B')
     assert s.peek_last() == 'B'
     s.pop_last()
     assert s.peek_last() == 'A'
     s.pop_last()
     assert s.peek_last() is None
 def test_length(self):
     s = Deque()
     assert s.length() == 0
     s.append('A')
     assert s.length() == 1
     s.append('B')
     assert s.length() == 2
     s.pop_last()
     assert s.length() == 1
     s.pop_last()
     assert s.length() == 0
 def test_prepend(self):
     s = Deque()
     s.prepend('A')
     assert s.peek_first() == 'A'
     assert s.peek_first() == 'A'
     assert s.length() == 1
     s.prepend('B')
     assert s.peek_first() == 'B'
     assert s.length() == 2
     s.prepend('C')
     assert s.peek_first() == 'C'
     assert s.length() == 3
     assert s.is_empty() is False
Ejemplo n.º 5
0
def palindrome_checker(input_string):
    # convert the string to lowercase
    input_string = input_string.lower()
    dq = Deque()
    match = True
    for ch in input_string:
        # skip empty spaces and insert to queue
        if ch != " ":
            dq.add_front(ch)

    while dq.size() > 1 and match:
        first = dq.remove_front()
        last = dq.remove_rear()
        if first != last:
            match = False

    return match
 def test_init(self):
     s = Deque()
     assert s.peek_first() is None
     assert s.peek_last() is None
     assert s.length() == 0
     assert s.is_empty() is True
 def test_init_with_list(self):
     s = Deque(['A', 'B', 'C'])
     assert s.peek_last() == 'C'
     assert s.peek_first() == 'A'
     assert s.length() == 3
     assert s.is_empty() is False