Skip to content
Snippets Groups Projects
Select Git revision
  • e6e09c6bcfef16c76e72c796dcc6cb45a193398f
  • master default protected
2 results

test_main.cpp

Blame
  • tree_successor_test.py 1.01 KiB
    #!/usr/bin/env python3
    import sys
    
    import tree_successor
    
    def test_sequence(sequence):
        tree = tree_successor.Tree()
        for i in sequence: tree.insert(i)
    
        node = tree.successor(None)
        for element in sorted(sequence):
            assert node is not None, "Expected successor {}, got None".format(element)
            assert node.key == element, "Expected successor {}, got {}".format(element, node.key)
            node = tree.successor(node)
        assert node is None, "Expected no successor, got {}".format(node.key)
    
    tests = [
        ("path", lambda: test_sequence(range(3000))),
        ("random_tree", lambda: test_sequence([pow(997, i, 199999) for i in range(1, 199999)])),
    ]
    
    if __name__ == "__main__":
        for required_test in sys.argv[1:] or [name for name, _ in tests]:
            for name, test in tests:
                if name == required_test:
                    print("Running test {}".format(name), file=sys.stderr)
                    test()
                    break
            else:
                raise ValueError("Unknown test {}".format(name))