Ejemplo n.º 1
0
def test_kth_to_last_failures(fn):
    head = Node.from_iterable(range(10))

    with pytest.raises(IndexError):
        fn(head, -1)

    with pytest.raises(IndexError):
        fn(head, 10)
Ejemplo n.º 2
0
def test_intersection(fn):

    # a - b - c - d
    #    /
    # e -
    #
    # g - h - i

    a = Node.from_iterable('abcd')
    b = a.next
    e = Node('e', next=b)
    g = Node.from_iterable('ghi')

    assert fn(a, a) == a
    assert fn(a, b) == b
    assert fn(a, e) == b
    assert fn(b, e) == b
    assert fn(a, g) == None
Ejemplo n.º 3
0
def test_remove_dups(fn):
    head = Node.from_iterable([1, 2, 3, 2, 3, 5, 2, 5, 6, 1])
    fn(head)
    assert head.to_list() == [1, 2, 3, 5, 6]
Ejemplo n.º 4
0
def test_kth_to_last(fn):
    lst = list(range(10))
    head = Node.from_iterable(lst)

    for k, element in enumerate(reversed(lst)):
        assert fn(head, k) == element
Ejemplo n.º 5
0
def test_delete_middle_node(fn):
    head = Node.from_iterable('abcdef')
    c = head.next.next
    fn(c)
    assert head.to_list() == list('abdef')