Example #1
0
    def test_len(self):
        ol = OrderedStringList(True)

        ol.add("12")
        ol.add("55")
        ol.add("12")

        self.assertEqual(ol.len(), 3)

        ol.delete("12", True)
        self.assertEqual(ol.len(), 1)
Example #2
0
    def test_clean(self):
        ol = OrderedStringList(False)

        ol.add(1)
        ol.add(2)
        ol.add(3)

        ol.clean(True)
        self.assertIsNone(ol.head)
        self.assertIsNone(ol.tail)
        self.assertEqual(ol.len(), 0)

        ol.add(1)
        ol.add(2)
        ol.add(3)

        ol.clean(False)
        self.assertIsNone(ol.head)
        self.assertIsNone(ol.tail)
        self.assertEqual(ol.len(), 0)
Example #3
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)