def test_merge_list_link1_head(): ll1 = LinkedList() ll2 = LinkedList() ll2.insert("A", "B", "C") actual = str(merge_list(ll1, ll2)) expected = "C : B : A : None" assert actual == expected
def test_LinkedList_insert_before_present_value(): ll = LinkedList() ll.insert("oranges", "bananas", "coconut") ll.insert_before("oranges", "kiwi") actual = str(ll) expected = "{coconut} -> {bananas} -> {kiwi} -> {oranges} -> NULL" assert actual == expected
def test_LinkedList_insert_before_multiple_arg_just_head(): ll = LinkedList() ll.insert("oranges") ll.insert_before("oranges", "1", "2", "3") actual = str(ll) expected = "{3} -> {2} -> {1} -> {oranges} -> NULL" assert actual == expected
def test_merge_list_link2_head(): ll1 = LinkedList() ll2 = LinkedList() ll1.insert("a", "b", "c", "d", "e", "f") actual = str(merge_list(ll1, ll2)) expected = "f : e : d : c : b : a : None" assert actual == expected
def test_LinkedList_insert_after_single_new_value(): ll = LinkedList() ll.insert("oranges", "kiwi", "bananas") ll.insert_after("kiwi", "1") actual = str(ll) expected = "{bananas} -> {kiwi} -> {1} -> {oranges} -> NULL" assert actual == expected
def test_LinkedList_insert_before_multiple_arg_long_head(): ll = LinkedList() ll.insert("oranges", "kiwi", "bananas", "coconut") ll.insert_before("kiwi", "1", "2", "3") actual = str(ll) expected = "{coconut} -> {bananas} -> {3} -> {2} -> {1} -> {kiwi} -> {oranges} -> NULL" assert actual == expected
def test_LinkedList_insert_after_single_list(): ll = LinkedList() ll.insert("apples") ll.insert_after("apples", "1") actual = str(ll) expected = "{apples} -> {1} -> NULL" assert actual == expected
def test_LinkedList_insert_after_multiple_arg_single_link(): ll = LinkedList() ll.insert("apples") ll.insert_after("apples", "1", "2", "3") actual = str(ll) expected = "{apples} -> {3} -> {2} -> {1} -> NULL" assert actual == expected
def test_LinkedList_insert_after_multiple_arg_large_link(): ll = LinkedList() ll.insert("apples", "kiwi", "coconut", "pineapple") ll.insert_after("kiwi", "1", "2", "3") actual = str(ll) expected = "{pineapple} -> {coconut} -> {kiwi} -> {3} -> {2} -> {1} -> {apples} -> NULL" assert actual == expected
def test_LinkedList_str(): ll = LinkedList() ll.insert("a") ll.insert("b") actual = str(ll) expected = "{ b } -> { a } -> NULL" assert actual == expected
def test_LinkedList_append_empty_list(): ll = LinkedList() ll.insert("1", "3", "2") ll.append("5") actual = str(ll) expected = "{2} -> {3} -> {1} -> {5} -> NULL" assert actual == expected
def test_filter(): nums = LinkedList() for i in range(1, 21): nums.insert(i) odds = [num for num in nums if num % 2] assert odds == [19, 17, 15, 13, 11, 9, 7, 5, 3, 1]
def test_LinkedList_includes_true(): ll = LinkedList() ll.insert("a") ll.insert("b") ll.insert("c") actual = ll.includes("c") expected = True assert actual == expected
def test_merge_lists_same_length(): ll1 = LinkedList() ll2 = LinkedList() ll1.insert("a", "b", "c") ll2.insert("A", "B", "C") actual = str(merge_list(ll1, ll2)) expected = 'c : C : b : B : a : A : None' assert actual == expected
def test_merge_list_link2_long(): ll1 = LinkedList() ll2 = LinkedList() ll1.insert("a", "b", "c") ll2.insert("A", "B", "C", "D", "E", "F") actual = str(merge_list(ll1, ll2)) expected = "c : F : b : E : a : D : C : B : A : None" assert actual == expected
def test_merge_list_link1_long(): ll1 = LinkedList() ll2 = LinkedList() ll1.insert("a", "b", "c", "d", "e", "f") ll2.insert("A", "B", "C") actual = str(merge_list(ll1, ll2)) expected = "f : C : e : B : d : A : c : b : a : None" assert actual == expected
def test_LinkedList_includes_false(): ll = LinkedList() ll.insert("a") ll.insert("b") ll.insert("c") actual = ll.includes("d") expected = False assert actual == expected
def test_equals(): lla = LinkedList() lla.insert("apple", "banana", "cucumber") llb = LinkedList() llb.insert("apple", "banana", "cucumber") assert len(lla) == len(llb) assert str(lla) == str(llb)
def test_next(): foods = LinkedList() foods.insert("apple", "banana", "cucumber") iterator = iter(foods) assert next(iterator) == "cucumber" assert next(iterator) == "banana" assert next(iterator) == "apple"
def test_stop_iteration(): foods = LinkedList() foods.insert("apple", "banana", "cucumber") iterator = iter(foods) with pytest.raises(StopIteration): while True: food = next(iterator)
def test_kth_value_one(): ll = LinkedList() ll.insert("1") actual = ll.find_k_node_value2(0) expected = '1' assert actual == expected
def test_kth_value_mid_length(): ll = LinkedList() ll.insert("1", "2", "3", "4", "5") actual = ll.find_k_node_value2(2) expected = '3' assert actual == expected
def test_kth_value_negativeKay(): ll = LinkedList() ll.insert("1", "2", "3") actual = ll.find_k_node_value2(-15) expected = "Exception" assert actual == expected
def test_kth_value_zeroKay(): ll = LinkedList() ll.insert("1", "2", "3") actual = ll.find_k_node_value(0) expected = '1' assert actual == expected
def test_for_in(): foods = LinkedList() foods.insert("apple", "banana", "cucumber") foods_list = [food for food in foods] assert foods_list == ['cucumber', 'banana', 'apple']
def test_str(): foods = LinkedList() foods.insert("apple", "banana", "cucumber") assert str(foods) == "{cucumber} -> {banana} -> {apple} -> NULL"
def test_LinkedList_insert(): ll = LinkedList() ll.insert("a") ll.insert("b") assert ll.head.value == "b" assert ll.head.next.value == "a"
def ll(): ll = LinkedList() ll.insert("apples") return ll
def prep(): """Sets up a linked list instance along with adds a few nodes for testing""" ll = LinkedList() ll.insert("a") ll.insert("b") ll.insert("c")
def test_list_cast(): food_list = ['cucumber', 'banana', 'apple'] foods = LinkedList() foods.insert("apple", "banana", "cucumber") assert list(foods) == food_list