def test_find_all(self): ol = OrderedStringList(True) ol.add("12") ol.add("55") ol.add("12") # поиск значения nodes = ol.find_all("12") self.assertEqual(len(nodes), 2) for node in nodes: self.assertEqual(node.value, "12") # поиск несуществующего значения nodes = ol.find_all("120") self.assertEqual(len(nodes), 0) # поиск по нулевому значению ol.add("") nodes = ol.find_all("") self.assertEqual(len(nodes), 1) # поиск в пустом списке ol = OrderedStringList(True) nodes = ol.find_all("12") self.assertEqual(len(nodes), 0) # поиск в списке из одного узла ol.add("12") nodes = ol.find_all("12") self.assertEqual(len(nodes), 1) for node in nodes: self.assertEqual(node.value, "12") # поиск в списке из одного узла несуществующего элемента nodes = ol.find_all("10") self.assertEqual(len(nodes), 0)
def test_delete(self): ol = OrderedStringList(True) ol.add("12") ol.add("55") ol.add("12") self.assertEqual(ol.len(), 3) # удаление первого найденого элемента из нескольких найденных NODE_VALUE = "12" nodes = ol.find_all(NODE_VALUE) self.assertEqual(len(nodes), 2) ol.delete(NODE_VALUE) nodes = ol.find_all(NODE_VALUE) self.assertEqual(len(nodes), 1) self.assertEqual(ol.len(), 2) self.assertEqual(ol.head.value, "12") self.assertEqual(ol.tail.value, "55") # удаление всех найденных элементов ol.add(NODE_VALUE) nodes = ol.find_all(NODE_VALUE) self.assertEqual(len(nodes), 2) ol.delete(NODE_VALUE, True) nodes = ol.find_all(NODE_VALUE) self.assertEqual(len(nodes), 0) self.assertEqual(ol.len(), 1) self.assertEqual(ol.head.value, "55") self.assertEqual(ol.tail.value, "55") # удаление единственного элемента в списке ol.delete("55") self.assertEqual(ol.len(), 0) self.assertIsNone(ol.head) self.assertIsNone(ol.tail) # удаление элемента из пустого списка self.assertEqual(ol.len(), 0) ol.delete(55) self.assertEqual(ol.len(), 0) self.assertIsNone(ol.head) self.assertIsNone(ol.tail) # удаление элемента из списка # после чего остается только один элемент в списке ol.add(NODE_VALUE) ol.add("55") self.assertEqual(ol.len(), 2) ol.delete("55") self.assertEqual(ol.head.value, "12") self.assertEqual(ol.tail.value, "12") self.assertIsNone(ol.head.next) self.assertIsNone(ol.tail.next) self.assertEqual(ol.len(), 1) ol.add("55") self.assertEqual(ol.len(), 2) ol.delete(NODE_VALUE) self.assertEqual(ol.head.value, "55") self.assertEqual(ol.tail.value, "55") self.assertIsNone(ol.head.next) self.assertIsNone(ol.tail.next) self.assertEqual(ol.len(), 1) # проверка на удаление элементов с пустой строкой ol = OrderedStringList(True) ol.add("") ol.add("") ol.add("1") ol.add("1") ol.add("2") ol.add("2") self.assertEqual(ol.len(), 6) ol.delete("1", True) ol.delete("2", True) ol.delete("") self.assertEqual(ol.head.value, "") self.assertEqual(ol.tail.value, "") self.assertIsNone(ol.head.next) self.assertIsNone(ol.tail.next) self.assertEqual(ol.len(), 1)