#!/usr/bin/python3

import gzip
import os
import tempfile

import rapidgzip


def main():
    data = os.urandom(1024 * 1024)

    fd, path = tempfile.mkstemp(suffix=".gz")
    os.close(fd)
    try:
        with gzip.open(path, "wb") as f:
            f.write(data)

        with rapidgzip.open(path) as f:
            out = f.read()
        assert out == data, "sequential read round-trip mismatch"

        # Exercise the parallel reader and seeking
        with rapidgzip.open(path, parallelization=2) as f:
            assert f.seekable()
            f.seek(len(data) // 2)
            out = f.read()
        assert out == data[len(data) // 2 :], "seek read mismatch"
    finally:
        os.unlink(path)

    print("OK")


if __name__ == "__main__":
    main()
