Ejemplo n.º 1
0
 def test_remove_unsuccessful(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     self.assertEqual(linked_list.remove(5), False)
Ejemplo n.º 2
0
 def test_index_of_unsuccessful(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     self.assertEqual(linked_list.indexOf(9), -1)
Ejemplo n.º 3
0
 def test_append(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     self.assertEqual(linked_list.head.data, 0)
     self.assertEqual(linked_list.tail.data, 1)
     self.assertNotEqual(linked_list.head, None)
     self.assertNotEqual(linked_list.tail, None)
Ejemplo n.º 4
0
 def test_remove_at_unsuccessful(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     with self.assertRaises(IndexError) as error:
         self.assertEqual(linked_list.removeAt(5), False)
Ejemplo n.º 5
0
 def test_value_at_unsuccessful(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     with self.assertRaises(IndexError) as error:
         self.assertEqual(linked_list.valueAt(9), -1)
def test_append():
    linked_list = LinkedList()

    linked_list.insert("apple")

    linked_list.insert("banana")

    linked_list.append("cucumber")

    assert str(linked_list) == "{ banana } -> { apple } -> { cucumber } -> NULL"
Ejemplo n.º 7
0
    def test_append(self):

        lst = LinkedList([82, 57, 16, 20, 21, 84, 99, 56, 100, 46])

        lst.append(88)
        lst.append(99)
        lst.append(36)
        lst.append(45)

        self.assertEqual(
            list(lst),
            [82, 57, 16, 20, 21, 84, 99, 56, 100, 46, 88, 99, 36, 45])
Ejemplo n.º 8
0
    def test_str(self):
        linked_list = LinkedList()
        linked_list.append(data=0)
        linked_list.append(data=1)
        linked_list.append(data=2)
        linked_list.append(data=3)
        linked_list.append(data=4)

        class StdOutMock(object):
            def __init__(self):
                self.data = []

            def write(self, s):
                self.data.append(s)

            def __str__(self):
                return "".join(self.data)

        stdout_org = sys.stdout
        stdout_mock = StdOutMock()
        try:
            sys.stdout = stdout_mock
            print(linked_list)
        finally:
            sys.stdout = stdout_org

        self.assertEqual(
            str(stdout_mock).strip(), '0 ---> 1 ---> 2 ---> 3 ---> 4')
Ejemplo n.º 9
0
 def test_creation(self):
     """Calling prepend, append and insert(0, data) on empty linked list."""
     ll = LinkedList()
     self.assertEqual([], ll.to_list()), 'Linked List should be empty.'
     self.assertEqual(0, ll.size), 'Empty list should have size 0'
     # prepend
     ll.prepend(1)
     self.assertEqual([1],
                      ll.to_list()), 'LL should have exactly one element.'
     self.assertEqual(1, ll.size), 'Should be size 1.'
     # append
     ll = LinkedList()
     ll.append(1)
     self.assertEqual([1],
                      ll.to_list()), 'LL should have exactly one element.'
     self.assertEqual(1, ll.size), 'Should be size 1.'
     ll = LinkedList()
     # insert at zero
     ll.insert(1, 0)
     self.assertEqual([1],
                      ll.to_list()), 'LL should have exactly one element.'
     self.assertEqual(1, ll.size), 'Should be size 1.'
Ejemplo n.º 10
0
 def test_value_at(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=None)
     self.assertEqual(linked_list.valueAt(1), 1)
     self.assertEqual(linked_list.valueAt(0), 0)
     self.assertEqual(linked_list.valueAt(3), 3)
Ejemplo n.º 11
0
 def test_index_of(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=None)
     self.assertEqual(linked_list.indexOf(1), 1)
     self.assertEqual(linked_list.indexOf(None), 4)
     self.assertEqual(linked_list.indexOf(3), 3)
Ejemplo n.º 12
0
 def test_find(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=None)
     self.assertEqual(linked_list.find(1), linked_list.head.next)
     self.assertEqual(linked_list.find(None), linked_list.tail)
     self.assertEqual(linked_list.find(3), linked_list.tail.previous)
Ejemplo n.º 13
0
 def test_iter(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=4)
     counter = 0
     for data in linked_list:
         self.assertEqual(data, counter)
         counter += 1
Ejemplo n.º 14
0
 def test_node_at(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=4)
     self.assertEqual(linked_list.length(), 5)
     self.assertEqual(linked_list.nodeAt(index=2).data, 2)
     self.assertEqual(linked_list.nodeAt(index=0).data, 0)
     self.assertEqual(linked_list.nodeAt(index=4).data, 4)
Ejemplo n.º 15
0
 def test_remove(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=None)
     self.assertEqual(linked_list.length(), 5)
     self.assertEqual(linked_list.remove(0), True)
     self.assertEqual(linked_list.valueAt(0), 1)
     self.assertEqual(linked_list.length(), 4)
     self.assertEqual(linked_list.remove(None), True)
     self.assertEqual(linked_list.length(), 3)
Ejemplo n.º 16
0
 def test_reverse(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=4)
     linked_list.reverse()
     self.assertEqual(linked_list.head.data, 4)
     self.assertEqual(linked_list.head.next.data, 3)
     self.assertEqual(linked_list.head.next.next.data, 2)
     self.assertEqual(linked_list.head.next.next.next.data, 1)
     self.assertEqual(linked_list.tail.data, 0)
Ejemplo n.º 17
0
    def test_delete(self):
        linked_list = LinkedList()
        linked_list.append(data=0)
        linked_list.append(data=1)
        linked_list.append(data=2)
        linked_list.append(data=3)
        linked_list.append(data=4)
        self.assertEqual(linked_list.head.data, 0)
        self.assertEqual(linked_list.tail.data, 4)

        with self.assertRaises(UnboundLocalError) as error:
            del (linked_list)
            self.assertEqual(linked_list, None)
Ejemplo n.º 18
0
 def test_remove_at(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     linked_list.append(data=1)
     linked_list.append(data=2)
     linked_list.append(data=3)
     linked_list.append(data=None)
     self.assertEqual(linked_list.removeAt(1), True)
     self.assertEqual(linked_list.valueAt(1), 2)
     self.assertEqual(linked_list.removeAt(0), True)
     self.assertEqual(linked_list.valueAt(0), 2)
     self.assertEqual(linked_list.removeAt(1), True)
     self.assertEqual(linked_list.valueAt(1), None)
     self.assertEqual(linked_list.removeAt(1), True)
Ejemplo n.º 19
0
    def test_extend_empty_second_list(self):
        linked_list = LinkedList()

        linked_list1 = LinkedList()
        linked_list1.append(data='a')
        linked_list1.append(data='b')
        linked_list1.append(data='c')
        linked_list1.append(data='d')
        linked_list1.append(data='e')
        self.assertEqual(linked_list1.head.data, 'a')
        self.assertEqual(linked_list1.tail.data, 'e')

        linked_list1.extend(linked_list)
        self.assertEqual(linked_list1.head.data, 'a')
        self.assertEqual(linked_list1.tail.data, 'e')
Ejemplo n.º 20
0
    def test_extend_empty_first_list(self):
        linked_list = LinkedList()

        linked_list1 = LinkedList()
        linked_list1.append(data='a')
        linked_list1.append(data='b')
        linked_list1.append(data='c')
        linked_list1.append(data='d')
        linked_list1.append(data='e')
        len1 = len(linked_list)
        len2 = len(linked_list1)

        linked_list.extend(linked_list1)
        self.assertEqual(linked_list.head.data, 'a')
        self.assertEqual(linked_list.tail.data, 'e')
        self.assertEqual(len(linked_list), len1 + len2)
Ejemplo n.º 21
0
    def test_add_empty_second_list(self):
        linked_list = LinkedList()
        linked_list.append(data=0)
        linked_list.append(data=1)
        linked_list.append(data=2)
        linked_list.append(data=3)
        linked_list.append(data=4)
        self.assertEqual(linked_list.head.data, 0)
        self.assertEqual(linked_list.tail.data, 4)
        len1 = len(linked_list)

        linked_list1 = LinkedList()
        len2 = len(linked_list1)

        linked_list2 = linked_list + linked_list1
        self.assertEqual(linked_list2.head.data, 0)
        self.assertEqual(linked_list2.tail.data, 4)
        self.assertEqual(len(linked_list2), len1 + len2)
Ejemplo n.º 22
0
    def test_add_empty_first_list(self):
        linked_list = LinkedList()
        self.assertEqual(linked_list.head, None)
        self.assertEqual(linked_list.tail, None)
        len1 = len(linked_list)

        linked_list1 = LinkedList()
        linked_list1.append(data='a')
        linked_list1.append(data='b')
        linked_list1.append(data='c')
        linked_list1.append(data='d')
        linked_list1.append(data='e')
        self.assertEqual(linked_list1.head.data, 'a')
        self.assertEqual(linked_list1.tail.data, 'e')
        len2 = len(linked_list1)

        linked_list2 = linked_list + linked_list1
        self.assertEqual(linked_list2.head.data, 'a')
        self.assertEqual(linked_list2.tail.data, 'e')
        self.assertEqual(len(linked_list2), len1 + len2)
Ejemplo n.º 23
0
    def test_add(self):
        linked_list = LinkedList()
        linked_list.append(data=0)
        linked_list.append(data=1)
        linked_list.append(data=2)
        linked_list.append(data=3)
        linked_list.append(data=4)
        self.assertEqual(linked_list.head.data, 0)
        self.assertEqual(linked_list.tail.data, 4)
        len1 = len(linked_list)

        linked_list1 = LinkedList()
        linked_list1.append(data='a')
        linked_list1.append(data='b')
        linked_list1.append(data='c')
        linked_list1.append(data='d')
        linked_list1.append(data='e')
        self.assertEqual(linked_list1.head.data, 'a')
        self.assertEqual(linked_list1.tail.data, 'e')
        len2 = len(linked_list1)

        linked_list2 = linked_list + linked_list1
        self.assertEqual(linked_list2.head.data, 0)
        self.assertEqual(linked_list2.tail.data, 'e')
        self.assertEqual(len(linked_list2), len1 + len2)
Ejemplo n.º 24
0
def test_append(constructor_arg):
    ll = LinkedList(constructor_arg)
    ll.append('test')
    assert ll._get(len(ll) - 1) == LinkedListNode('test')
Ejemplo n.º 25
0
 def test_node_at_index_invalid(self):
     linked_list = LinkedList()
     linked_list.append(data=0)
     with self.assertRaises(IndexError) as error:
         self.assertEqual(linked_list.nodeAt(index=-1), None)
Ejemplo n.º 26
0
 def test_append_fail(self):
     linked_list = LinkedList()
     linked_list.append(data=None)
     self.assertNotEqual(linked_list.head, None)