kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

ALDS1_8_C: Binary Search Tree III (続き3)

オンラインジャッジのテストケースは網羅性とか気にしないんだろうか

まあ文句言ってても始まらないので軽くテストできるように書くか

def process(commands):
    T = Tree()
    for cmd in commands:
        if cmd[0] == "insert":
            T.insert(Node(int(cmd[1])))
        elif cmd == "find":
            print("yes" if T.find(int(cmd[1])) else "no")
        elif cmd == "delete":
            T.delete(int(cmd[1]))
        elif cmd == "print":
            T.print_inorder()
            T.print_preorder()
    print(str(T))
    return T

def test_a_case(name, commands, expected):
    result = str(process(commands))
    assert result == expected, name + " " + result

def test():
    test_a_case(
        "test1",
        [
        ],
        "()")
    test_a_case(
        "test2",
        [
            ["insert", "1"],
        ],
        "(1 None None)")
    test_a_case(
        "test3",
        [
            ["insert", "1"],
            ["delete", "1"],
        ],
        "()")

test()

これくらいでバグが見つかるんだからテストなんてちょろいね
うそです
いろんなケースでちゃんと動くことを確認しようと思ったら
どれだけ書けばいいか見当がつかない