def test_find_in_empty_list(self): lst = OrderedList(True) found_node = lst.find(123) self.assertEqual(0, lst.len()) self.assertIsNone(lst.head) self.assertIsNone(lst.tail) self.assertIsNone(found_node)
def test_find_desc_integer(self): lst = OrderedList(False) nodes = self.populate_integer_list(lst) for node in nodes: found_node = lst.find(node.value) self.assertIsNotNone(found_node) self.assertEqual(node.value, found_node.value) self.assertIsNone(lst.find(999))
def populate_string_list(lst: OrderedList): nodes = ( Node("abc "), Node(" bcd "), Node(" cde"), ) for node in nodes: lst.add(node.value) return nodes
def populate_integer_list(lst: OrderedList): nodes = ( Node(123), Node(345), Node(567), ) for node in nodes: lst.add(node.value) return nodes
def test_get_all_desc_integer(self): lst = OrderedList(False) nodes = self.populate_integer_list(lst) actual_nodes = lst.get_all() self.assertEqual(len(nodes), lst.len()) self.assertEqual(len(actual_nodes), lst.len()) for idx, node in enumerate(reversed(nodes), start=0): self.assertEqual(node.value, actual_nodes[idx].value)
def test_clean(self): lst = OrderedList(True) nodes = self.populate_integer_list(lst) lst.clean(True) self.assertEqual(0, lst.len()) self.assertIsNone(lst.head) self.assertIsNone(lst.tail) for node in nodes: self.assertIsNone(node.prev) self.assertIsNone(node.next)
def test_delete_in_one_elem_list(self): lst = OrderedList(True) lst.add(123) self.assertEqual(1, lst.len()) lst.delete(123) self.assertEqual(0, lst.len()) self.assertIsNone(lst.head) self.assertIsNone(lst.tail)
def test_delete_desc_integer(self): lst = OrderedList(False) nodes = self.populate_integer_list(lst) lst.delete(nodes[1].value) self.assertEqual(len(nodes) - 1, lst.len()) for node in lst.get_all(): self.assertNotEqual(nodes[1].value, node.value)
def test_add_desc_integer(self): lst = OrderedList(False) nodes = ( Node(1), Node(2), Node(3), Node(4), ) lst.add(nodes[1].value) lst.add(nodes[3].value) lst.add(nodes[0].value) lst.add(nodes[2].value) self.assertEqual(len(nodes), lst.len()) self.assertEqual(nodes[len(nodes) - 1].value, lst.head.value) self.assertIsNotNone(lst.head.next) self.assertEqual(nodes[len(nodes) - 2].value, lst.head.next.value) self.assertEqual(nodes[0].value, lst.tail.value) self.assertEqual(nodes[1].value, lst.tail.prev.value)
def test_compare_integer(self): lst = OrderedList(True) self.assertEqual(-1, lst.compare(2, 3)) self.assertEqual(0, lst.compare(2, 2)) self.assertEqual(1, lst.compare(3, 2))