def task(self): # проверяем что очередь не пуста и не переполнена if self.length < 1 or self.length > self.K: return curr = Node(self.remove()) self.insert(curr.returnValue())
def test_length(self): self.assertEqual(self.l.length(), 0) self.l.add(Node(1)) self.l.add(Node(2)) self.l.add(Node(3)) self.assertEqual(self.l.length(), 3)
def test_to_string(self): self.assertEqual(self.l.to_string(), "[]") self.l.add(Node(1)) self.assertEqual(self.l.to_string(), "[1]") self.l.add(Node(2)) self.l.add(Node(3)) self.assertEqual(self.l.to_string(), "[3, 2, 1]")
def test_to_list(self): self.assertEqual(self.l.to_list(), []) self.l.add(Node(1)) self.assertEqual(self.l.to_list(), [1]) self.l.add(Node(2)) self.l.add(Node(3)) self.assertEqual(self.l.to_list(), [3, 2, 1])
def push(self, value): node = Node(value) if self.lenght == 0: self.head = node self.lenght += 1 else: node.next = self.head self.head = node self.lenght += 1
def insert(self, value): node = Node(value) node.next = None if self.length == 0: # if list is empty, the new node is head and last self.head = self.last = node else: # find the last node last = self.last # append the new node last.next = node self.last = node self.length += 1
def test_delete(self): self.l.add(Node(1)) self.l.add(Node(2)) self.l.add(Node(3)) self.assertTrue(self.l.delete(Node(2)).equals(Node(2))) self.assertIsNone(self.l.delete(Node(12)))
def test_add_mixed(self): self.l.add(Node(1)) self.l.add_tail(Node(2)) self.l.add_tail(Node(3)) self.l.add(Node(4)) self.l.add(Node(5)) self.l.add_tail(Node(6)) self.assertEqual(self.l.to_list(), [5, 4, 1, 2, 3, 6])
def test_add_tail(self): self.l.add_tail(Node(1)) self.l.add_tail(Node(2)) self.l.add_tail(Node(3)) self.assertEqual(self.l.to_list(), [1, 2, 3])