예제 #1
0
 def test_linked_list_insert_head(self):
     linked_list = LinkedList()
     linked_list.insert_head(25)
     self.assertIsNotNone(linked_list)
     self.assertTrue(linked_list.__len__() == 1)
     linked_list.insert_head("Riccardo")
     self.assertTrue(linked_list.__len__() == 2)
     self.assertTrue(linked_list.head.item == "Riccardo")
     self.assertFalse(linked_list.head.next.item == "Riccardo")
     self.assertTrue(linked_list.head.next.item == 25)
예제 #2
0
def test_len():
    """Test that the len method works."""
    l = LinkedList()
    l.insert(8)
    l.insert(9)
    l.insert(10)
    assert l.__len__() == 3
예제 #3
0
def test_len():
    """."""
    from linked_list import LinkedList
    l = LinkedList()
    l.push(8)
    l.push(9)
    l.push(10)
    assert l.__len__() == 3
    def test_length_func(self):
        # Arrange
        my_list = LinkedList()
        my_list.insert_front("Test3")
        my_list.insert_front("Test3")
        my_list.insert_front("Test1")
        my_list.insert_front("Test2")
        my_list.insert_front("Test3")
        my_list.insert_front("Test3")

        # Act
        length1 = my_list.__len__()

        # Assert
        self.assertEqual(6, length1, "delete did not result in correct list length")
예제 #5
0
class Stack(object):
    """Ojbect inheretence from Linked list to create Stack Data structure."""
    def __init__(self, data=[]):
        """Instantiate new Stack."""
        self._new_linked_list = LinkedList(data)

    def pop(self):
        """Remove and returns node from top of the stack."""
        return self._new_linked_list.pop()

    def push(self, val):
        """Add a new node to the top of stack."""
        return self._new_linked_list.push(val)

    def __len__(self):
        """Return length of stack."""
        return self._new_linked_list.__len__()
예제 #6
0
 def test_linked_list_empty(self):
     linked_list = LinkedList()
     self.assertTrue(linked_list.__len__()==0)
     self.assertEqual(linked_list.head, None)
# llist.add_after('f', Node('g')) # exception
print(llist)

# inserting a node before a target node
llist.add_before('c', Node('bb'))
print(llist)
llist.add_before('a', Node('zz'))
print(llist)

# removing a node
llist.remove_node('zz')
print(llist)
llist.remove_node('cc')
llist.remove_node('bb')
print(llist)

# get the node at position i
print(llist.get(3))
# print(llist.get(7)) # exception

# get the node at position i using subscript
print(llist[3])
# print(llist[7]) # exception

# get the reversed linked list
print(llist.reverse())

# get the length of the linked list
print(len(llist))
print(llist.__len__())
def test_len_method():
    """Test __len__."""
    test_linked_list = LinkedList()
    test_linked_list.push(5)
    assert test_linked_list.__len__() == 1
class TestLinkedList(unittest.TestCase):
    def setUp(self):
        self.list = LinkedList()

    def tearDown(self):
        self.list = None

    def test_append(self):
        self.list.append("Mr. Green")

        self.assertTrue(self.list.head.data == "Mr. Green")
        self.assertTrue(self.list.head.next_node is None)

    def test_append_two(self):
        self.list.append("Mr. Green")
        self.list.append("Miss Scarlet")

        self.assertTrue(self.list.head.data == "Miss Scarlet")

        new_head = self.list.head.next_node
        self.assertTrue(new_head.data == "Mr. Green")

    def test_next_node(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        self.assertTrue(self.list.head.data == "Mr. Boddy")

        new_head = self.list.head.next_node
        self.assertTrue(new_head.data == "Mrs. Peacock")

        last = new_head.next_node
        self.assertTrue(last.data == "Prof. Plum")

    def test_len(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        length = self.list.__len__()

        self.assertTrue(length == 3)

    def test_succeed_getitem(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        result = self.list.__getitem__(0)
        self.assertTrue(result.data == "Mr. Boddy")

        result = self.list.__getitem__(1)
        self.assertTrue(result.data == "Mrs. Peacock")

        result = self.list.__getitem__(2)
        self.assertTrue(result.data == "Prof. Plum")

    def test_fail_getitem(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")

        with self.assertRaises(IndexError):
            self.list.__getitem__(2)

    @unittest.skip('Extra Challenge: pop method.')
    def test_pop(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        old_head = self.list.pop()
        self.assertTrue(old_head.data == "Mr. Boddy")

        new_head = self.list.head
        self.assertTrue(new_head.data == "Mrs. Peacock")

        new_length = len(self.list)
        self.assertTrue(new_length == 2)

    @unittest.skip('Extra Challenge: pop method.')
    def test_pop_empty_list(self):
        with self.assertRaises(IndexError):
            self.list.pop()

    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        # Delete the list head
        self.list.__delitem__(0)
        self.assertTrue(self.list.head.data == "Mrs. Peacock")

        # Delete the list tail
        self.list.__delitem__(1)
        self.assertTrue(self.list.head.next_node is None)

        new_length = len(self.list)
        self.assertTrue(new_length == 1)

    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete_value_not_in_list(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        with self.assertRaises(IndexError):
            self.list.__delitem__(3)

    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete_empty_list(self):
        with self.assertRaises(IndexError):
            self.list.__delitem__(1)

    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete_next_reassignment(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. White")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        self.list.__delitem__(1)
        self.list.__delitem__(1)

        self.assertTrue(self.list.head.next_node.data == "Prof. Plum")
예제 #10
0
class TestLinkedList(unittest.TestCase):

    def setUp(self):
        self.list = LinkedList()


    def tearDown(self):
        self.list = None


    def test_append(self):
        self.list.append("Mr. Green")

        self.assertTrue(self.list.head.data == "Mr. Green")
        self.assertTrue(self.list.head.next_node is None)


    def test_append_two(self):
        self.list.append("Mr. Green")
        self.list.append("Miss Scarlet")

        self.assertTrue(self.list.head.data == "Miss Scarlet")

        new_head = self.list.head.next_node
        self.assertTrue(new_head.data == "Mr. Green")


    def test_next_node(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        self.assertTrue(self.list.head.data == "Mr. Boddy")

        new_head = self.list.head.next_node
        self.assertTrue(new_head.data == "Mrs. Peacock")

        last = new_head.next_node
        self.assertTrue(last.data == "Prof. Plum")


    def test_len(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        length = self.list.__len__()

        self.assertTrue(length == 3)


    def test_len_zero(self):
        length = self.list.__len__()

        self.assertTrue(length == 0)


    def test_len_one(self):
        self.list.append("Prof. Plum")
        length = self.list.__len__()

        self.assertTrue(length == 1)


    def test_succeed_getitem(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        result = self.list.__getitem__(0)
        self.assertTrue(result == "Mr. Boddy")

        result = self.list.__getitem__(1)
        self.assertTrue(result == "Mrs. Peacock")

        result = self.list.__getitem__(2)
        self.assertTrue(result == "Prof. Plum")


    def test_fail_getitem(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")

        with self.assertRaises(IndexError):
            self.list.__getitem__(2)


    @unittest.skip('Extra Challenge: pop method.')
    def test_pop(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        old_head = self.list.pop()
        self.assertTrue(old_head.data == "Mr. Boddy")

        new_head = self.list.head
        self.assertTrue(new_head.data == "Mrs. Peacock")

        new_length = len(self.list)
        self.assertTrue(new_length == 2)


    @unittest.skip('Extra Challenge: pop method.')
    def test_pop_empty_list(self):
        with self.assertRaises(IndexError):
            self.list.pop()


    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        # Delete the list head
        self.list.__delitem__(0)
        self.assertTrue(self.list.head.data == "Mrs. Peacock")

        # Delete the list tail
        self.list.__delitem__(1)
        self.assertTrue(self.list.head.next_node is None)

        new_length = len(self.list)
        self.assertTrue(new_length == 1)


    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete_value_not_in_list(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        with self.assertRaises(IndexError):
            self.list.__delitem__(3)


    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete_empty_list(self):
        with self.assertRaises(IndexError):
            self.list.__delitem__(1)


    @unittest.skip('Extra Challenge: __delitem__ method.')
    def test_delete_next_reassignment(self):
        self.list.append("Prof. Plum")
        self.list.append("Mrs. White")
        self.list.append("Mrs. Peacock")
        self.list.append("Mr. Boddy")

        self.list.__delitem__(1)
        self.list.__delitem__(1)

        self.assertTrue(self.list.head.next_node.data == "Prof. Plum")