def test_get_an_inorder_list_using_data_structure_list(bst): """ trying to implement a different design for in order WIP IDEA """ singly_linked_list = SinglyLinkedList() bst.insert(8) bst.insert(10) bst.insert(3) bst.insert(1) bst.insert(4) singly_linked_list.append(1, first=True) singly_linked_list.append(3, first=False, tail=True) singly_linked_list.append(4, first=False, tail=True) singly_linked_list.append(8, first=False, tail=True) singly_linked_list.append(10, first=False, tail=True) inorder_linked_list = bst.inorder() # compare itens # TODO I think this compare was too hard to understand refactor this has_equal_values = all( map( lambda x: x[0] == x[1], zip(singly_linked_list, inorder_linked_list) # noqa ) # noqa ) assert has_equal_values is True
def test_get_an_preorder_list_using_data_structure_list(bst): """ trying to implement a different design for in preorder WIP IDEA """ singly_linked_list = SinglyLinkedList() bst.insert(10) bst.insert(4) bst.insert(1) bst.insert(5) bst.insert(11) bst.insert(14) for data in [10, 4, 1, 5, 11, 14]: singly_linked_list.append(data) preorder_linked_list = bst.pre_order() # compare itens # TODO I think this compare was too hard to understand refactor this has_equal_values = all( map( lambda x: x[0] == x[1], zip(singly_linked_list, preorder_linked_list), # noqa ) # noqa ) assert has_equal_values is True
def test_linked_list_append_node(): singly_linked_list = SinglyLinkedList() singly_linked_list.append(1) assert len(singly_linked_list) == 1 singly_linked_list.append(3) assert singly_linked_list._head.value == 3 assert singly_linked_list._head.next.value == 1 assert len(singly_linked_list) == 2 singly_linked_list.append(5) singly_linked_list.append(7, tail=True) assert singly_linked_list._head.value == 5 assert singly_linked_list._head.next.next.next.value == 7
def pre_order(self): """ Time complexity: Best case: O(n) Worst case: O(n) """ singly_linked_list = SinglyLinkedList() return self._pre_order(self.root, singly_linked_list)
def test_remove_duplicate_nodes(): slinked_list = SinglyLinkedList() assert len(slinked_list) == len(remove_duplicates(slinked_list)) slinked_list.append(1) slinked_list.append(2) slinked_list.append(3) slinked_list.append(3) slinked_list.append(4) assert [4, 3, 2, 1] == [item for item in remove_duplicates(slinked_list)]
def test_append_in_slinked_list(): slinked_list = SinglyLinkedList() slinked_list.append(1) slinked_list.append(2) slinked_list.append(3) slinked_list.append(4) assert len(slinked_list) == 4
def test_append_with_tail_flag(): singly_linked_list = SinglyLinkedList() singly_linked_list.append(1, tail=True) assert len(singly_linked_list) == 1 assert singly_linked_list._head.value == 1 singly_linked_list.append(7, tail=True) assert len(singly_linked_list) == 2 assert singly_linked_list._head.next.value == 7
def singly_linked_list(): return SinglyLinkedList()
def test_merge_sort(): l = SinglyLinkedList() # noqa l.append(6) l.append(1) l.append(2) l.append(4) l.append(8) l.append(9) l.append(5) l.append(7) l.append(3) l = l.sort(reverse=True) # noqa list_to_compare = [9, 8, 7, 6, 5, 4, 3, 2, 1] has_equal_values = all(map(lambda x: x[0] == x[1], zip(l, list_to_compare))) # noqa assert has_equal_values is True