def preceding_words(sentence):
    words = sentence.split(" ")
    index = 1
    preceding = {}
    while index < len(words):
        word = words[index]
        if len(word) > 0:
            previous = words[index - 1]
            if word in preceding:
                preceding[word].append(previous)
            else:
                preceding[word] = [previous]
        index = index + 1
    return preceding


def test_preceding_words():
    assert preceding_words("") == {}
    assert preceding_words("Hello") == {"Hello": []}
    assert preceding_words("Python is fun") == {"Python": [], "is": ["Python"], "fun": ["is"]}
    assert preceding_words("a b b") == {"a": [], "b": ["a", "b"]}

tests = []

if __name__ == "__main__":
    for test in tests:
        test()
    print("All tests passed")