コード例 #1
0
class TestLinkedList(TestCase):
    def setUp(self):
        self.test_list = LinkedList('head_data')

    def test_set_up(self):
        self.assertIsNone(self.test_list.head.next.data)
        self.assertEqual(self.test_list.head.data, 'head_data')
        self.test_list.head.next = Node(25)
        current_node = self.test_list.head
        self.assertEqual(current_node.next.data, 25)

    def test_get_head(self):
        self.assertEqual(self.test_list.get_head(), self.test_list.head.data)

    def test_add_element(self):
        self.test_list.add_element('node2data')
        self.assertEqual(self.test_list.head.next.data, 'node2data')

    def test_add_at_index(self):
        self.test_list.head.next.data = 'node2data'
        self.test_list.add_at_index(2, 'node3data')
        self.assertEqual(self.test_list.head.next.next.data, 'node3data')

    def test_size(self):
        self.test_list.head.next.data = 'node2data'
        self.test_list.head.next.next = Node('node3data')
        self.assertEqual(self.test_list.size(), 3)

    def test_index(self):
        self.test_list.head.next.data = 'node2data'
        self.assertEqual(self.test_list.index(1), 'node2data')

    def test_remove(self):
        self.test_list.head.next.data = 'node2data'
        self.test_list.head.next.next = Node('node3data')
        self.assertEqual(self.test_list.size(), 3)
        self.test_list.remove(1)
        self.assertEqual(self.test_list.size(), 2)
        self.assertEqual(self.test_list.head.next.data, 'node3data')

    def test_to_list(self):
        self.test_list.head.next.data = 'node2data'
        self.assertEqual(self.test_list.to_list(), ['head_data', 'node2data'])

    def test_add_first(self):
        self.test_list.add_first('add_first_data')
        self.assertEqual(self.test_list.head.next.data, 'head_data')

    def test_add_list(self):
        self.test_list.add_list([1, 2, 3, 4])
        self.assertEqual(self.test_list.size(), 5)

    def test_pop(self):
        self.test_list.head.next.data = 'node2data'
        self.test_list.pop()
        self.assertEqual(self.test_list.size(), 1)

    def test_reduce_to_unique(self):
        self.test_list.head.next.data = 'node2data'
        self.test_list.add_element('node3data')
        self.test_list.add_element('node2data')
        self.test_list.reduce_to_unique()
        self.assertIsNone(self.test_list.head.next.next.next)
コード例 #2
0
ファイル: test_linked_list.py プロジェクト: Nimor111/101-v5
class LinkedListTest(unittest.TestCase):
    def setUp(self):
        self.ll = LinkedList()

    def test_adding_element(self):
        self.ll.add_element(4)
        self.assertEqual(self.ll.size(), 1)

    def test_remove_element(self):
        self.ll.add_element(4)
        size = self.ll.size()
        self.ll.remove(0)
        size2 = self.ll.size()
        self.assertFalse(size == size2)

    def test_pprint(self):
        self.ll.add_element(4)
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.pprint(), "4->5->6->7")

    def test_to_list(self):
        self.ll.add_element(4)
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.to_list(), [4, 5, 6, 7])

    def test_add_at_index(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.add_at_index(2, 3), 3)

    def test_add_first(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.add_first(5), 5)

    def test_add_linked_list(self):
        ll_two = LinkedList()
        ll_two.add_element(6)
        ll_two.add_element(7)
        ll_two.add_element(8)
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.add_linked_list(ll_two), 8)

    def test_add_list(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        xs = [1, 2, 3]
        self.assertEqual(self.ll.add_list(xs), '5->6->7->1->2->3')

    def test_pop(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.pop(), 7)

    def test_reduce_to_unique(self):
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.ll.add_element(7)
        self.assertEqual(self.ll.reduce_to_unique(), '5->7')

    def test_ll_from_to(self):
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.ll.add_element(7)
        self.assertEqual(self.ll.ll_from_to(1, 2), '5->7')
コード例 #3
0
class LinkedListTest(unittest.TestCase):
    def setUp(self):
        self.ll = LinkedList()

    def test_eq(self):
        ll_2 = LinkedList()
        self.ll.add_element(5)
        self.ll.add_element(6)
        ll_2.add_element(5)
        ll_2.add_element(6)
        self.assertTrue(self.ll == ll_2)

    def test_adding_element(self):
        self.ll.add_element(4)
        self.assertEqual(self.ll.size(), 1)

    def test_remove_element(self):
        self.ll.add_element(4)
        size = self.ll.size()
        self.ll.remove(0)
        size2 = self.ll.size()
        self.assertFalse(size == size2)

    def test_remove_element_2(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.ll.remove(1)
        self.assertEqual(self.ll.index(1), 7)

    def test_size_1(self):
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.assertEqual(self.ll.size(), 3)

    def test_size_2(self):
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.ll.add_element(5)
        self.ll.pop()
        self.ll.pop()
        self.assertEqual(self.ll.size(), 1)

    def test_index(self):
        self.ll.add_element(5)
        self.ll.add_element(2)
        self.assertEqual(self.ll.index(0), 5)
        self.assertNotEqual(self.ll.index(1), 5)

    def test_remove_element_2(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.ll.remove(1)
        self.assertEqual(self.ll.index(1), 7)

    def test_pprint(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.pprint(), "5 -> 6 -> 7")

    def test_to_list(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.assertEqual(self.ll.to_list(), [5, 6, 7])

    def test_add_at_index(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_at_index(1, 7)
        self.assertEqual(self.ll.index(1), 7)
        self.assertEqual(self.ll.index(2), 6)

    def test_add_first(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_first(7)
        self.assertEqual(self.ll.index(0), 7)
        self.assertEqual(self.ll.index(1), 5)

    def test_add_linked_list(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        ll_2 = LinkedList()
        ll_2.add_element(7)
        ll_2.add_element(8)
        self.ll.add_linked_list(ll_2)
        self.assertEqual(self.ll.to_list(), [5, 6, 7, 8])

    def test_ll_from_to(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.ll.add_element(8)
        from_to = self.ll.ll_from_to(1, 3)
        self.assertEqual(from_to.to_list(), [6, 7, 8])

    def test_pop(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.ll.pop()
        size = self.ll.size()
        self.assertEqual(self.ll.index(size - 1), 6)

    def test_reduce_to_unique(self):
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.ll.add_element(5)
        self.ll.add_element(6)
        self.ll.add_element(7)
        self.ll.reduce_to_unique()
        self.assertEqual(self.ll.to_list(), [5, 6, 7])
コード例 #4
0
class LinkedListTest(unittest.TestCase):

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

    def test_adding_element(self):
        self.ll.add_element(4)
        self.assertEqual(self.ll.size(), 1)

    def test_remove_element(self):
        self.ll.add_element(4)
        size = self.ll.size()
        self.ll.remove(0)
        size2 = self.ll.size()
        self.assertFalse(size == size2)

    def test_len_dunder(self):
        self.assertEqual(0, len(self.ll))

    def test_size(self):
        self.ll = LinkedList(10)
        self.assertEqual(self.ll.size(), 10)

    def test_size_after_adding(self):
        self.ll.add_element(10)
        self.assertEqual(1,self.ll.size())

    def test_size_after_remove(self):
        self.ll.add_element(10)
        self.ll.remove(0)
        self.assertEqual(0, self.ll.size())

    def test_pprint(self):
        self.ll.add_element(10)
        self.ll.add_element(100)
        self.ll.add_element(1000)
        self.assertEqual('[10, 100, 1000]', self.ll.pprint())

    def test_to_list(self):
        self.ll.add_element(100)
        self.ll.add_element(1000)
        self.ll.add_element(100)
        self.ll.add_element(1000)
        self.assertEqual([100, 1000, 100, 1000], self.ll.to_list())

    def test_index(self):
        self.ll.add_element(100)
        self.ll.add_element(1000)
        self.assertEqual(1000, self.ll.index(1).value)

    def test_add_at_index(self):
        self.ll.add_element(100)
        self.ll.add_element(1000)
        self.ll.add_at_index(1, 69)
        self.assertEqual(69, self.ll.index(1).value)

    def test_add_first(self):
        self.ll.add_element(100)
        self.ll.add_first(69)
        self.assertEqual(69, self.ll.index(0).value)

    def test_add_list(self):
        self.ll.add_element(1)
        self.ll.add_list([10, 100, 1000])
        self.assertEqual([1, 10, 100, 1000], self.ll.to_list())

    def test_add_linked_list(self):
        self.ll.add_element(1)
        new_ll = LinkedList()
        new_ll.add_element(10)
        new_ll.add_element(100)
        self.ll.add_linked_list(new_ll)
        self.assertEqual([1, 10, 100], self.ll.to_list())

    def test_ll_from_to(self):
        self.ll.add_element(0)
        self.ll.add_list([1, 10, 100, 1000])
        self.assertEqual([10, 100], self.ll.ll_from_to(2, 3).to_list())

    def test_pop(self):
        self.ll.add_element(1)
        self.ll.add_element(10)
        self.ll.pop()
        self.assertEqual([1], self.ll.to_list())

    def reduce_to_unique(self):
        self.ll.add_element(1)
        self.ll.add_list([10, 100, 10])
        self.assertEqual([1, 10, 100], self.ll.reduce_to_unique())

    def test_set_element(self):
        self.ll.add_element(1)
        self.ll.add_list([10, 100, 1000])
        self.ll.set_element(2, 69)
        self.assertEqual(69, self.ll.index(2).value)
コード例 #5
0
class LinkedListTest(unittest.TestCase):
    def setUp(self):
        self.ll = LinkedList()

    def test_adding_element(self):
        self.ll.add_element(4)
        self.assertEqual(self.ll.size(), 1)

    def test_remove_element(self):
        self.ll.add_element(4)
        size = self.ll.size()
        self.ll.remove(0)
        size2 = self.ll.size()
        self.assertFalse(size == size2)

    def test_add_first_element(self):
        self.ll.add_first(30)  #check first el
        self.assertEqual(self.ll.head.value, 30)
        self.ll.add_first(12)  #check tail el after add second el
        self.assertEqual(self.ll.tail.value, 30)

    def test_get_index_of_element(self):
        node = self.ll.get_index(0)  #test empty list
        self.assertEqual(node, None)

        self.ll.add_element(1)  #test index with elements
        self.ll.add_element(2)
        self.ll.add_element(3)
        self.assertEqual(self.ll.get_index(1).value, 2)

    def test_to_list_func(self):
        self.ll.add_element(1)
        self.ll.add_element(4)
        self.ll.add_element(3)
        self.assertEqual(self.ll.to_list(), [1, 4, 3])

    def test_add_at_index(self):
        #invalid indexes
        self.assertFalse(self.ll.add_at_index(1, 3), False)
        self.assertEqual(self.ll.add_at_index(0, 5), None)

    def test_ll_from_to(self):
        self.ll.add_list([1, 2, 3, 4, 5, 6, 7])
        new_ll = self.ll.ll_from_to(3, 6)
        self.assertEqual(new_ll.head.value, 4)
        self.assertEqual(new_ll.tail.value, 7)
        self.assertEqual(new_ll.to_list(), [4, 5, 6, 7])

    def test_pop_func(self):
        # test tail of the list is it pop one el
        self.ll.add_list([1, 2, 3])
        self.ll.pop()
        self.assertEqual(self.ll.tail.value, 2)
        self.ll.pop()
        self.assertEqual(self.ll.tail.value, 1)

    def test_reduce_to_unique(self):
        orig_list = [0, 0, 1, 0, 0, 1, 2, 3, 2]
        expected_list = [0, 1, 2, 3]
        self.ll.add_list(orig_list)
        self.assertEqual(self.ll.to_list(), orig_list)
        unique_ll = self.ll.reduce_to_unique()
        self.assertNotEqual(unique_ll.to_list(), orig_list)
        self.assertEqual(unique_ll.to_list(), expected_list)

    def test_add_to_linked_list(self):
        new_ll = LinkedList()
        new_ll.add_element(1)
        new_ll.add_element(2)
        new_ll.add_element(3)
        self.ll.add_element(0)
        self.ll.add_linked_list(new_ll)
        self.assertEqual(self.ll.head.value, 0)
        self.assertEqual(self.ll.tail.value, 3)
        self.assertEqual(self.ll.to_list(), [0, 1, 2, 3])