def test_is_k_longer_than_length(): ll = LinkedList() ll.append_node(1) ll.append_node(2) ll.append_node(3) with pytest.raises(IndexError): ll.find_kth_value_from_end(4)
def test_negative_input(): ll = LinkedList() ll.append_node(1) ll.append_node(2) ll.append_node(3) # test will pass if code in block causes expected ERROR with pytest.raises(ValueError): ll.find_kth_value_from_end(-1)
def test_k_in_middle(): ll = LinkedList() ll.append_node("a") ll.append_node(3) ll.append_node("3") actual = ll.find_kth_value_from_end(1) expected = 3 assert actual == expected
def test_is_k_same_as_length(): ll = LinkedList() ll.append_node("a") ll.append_node("b") ll.append_node("c") actual = ll.find_kth_value_from_end(2) expected = "a" assert actual == expected
def test_single_node_ll(): ll = LinkedList() ll.insert("a") actual = ll.find_kth_value_from_end(0) expected = "a" assert actual == expected