Beispiel #1
0
def test_compress_blocksize_default(use_threads):
    arr = np.arange(1000, dtype='i4')

    blosc.use_threads = use_threads

    # default blocksize
    enc = blosc.compress(arr, b'lz4', 1, Blosc.NOSHUFFLE)
    _, _, blocksize = blosc.cbuffer_sizes(enc)
    assert blocksize > 0

    # explicit default blocksize
    enc = blosc.compress(arr, b'lz4', 1, Blosc.NOSHUFFLE, 0)
    _, _, blocksize = blosc.cbuffer_sizes(enc)
    assert blocksize > 0
Beispiel #2
0
def test_compress_blocksize(use_threads, bs):
    arr = np.arange(1000, dtype='i4')

    blosc.use_threads = use_threads

    enc = blosc.compress(arr, b'lz4', 1, Blosc.NOSHUFFLE, bs)
    _, _, blocksize = blosc.cbuffer_sizes(enc)
    assert blocksize == bs
Beispiel #3
0
def test_compress_metainfo(dtype, use_threads):
    arr = np.arange(1000, dtype=dtype)
    for shuffle in Blosc.NOSHUFFLE, Blosc.SHUFFLE, Blosc.BITSHUFFLE:
        blosc.use_threads = use_threads
        for cname in blosc.list_compressors():
            enc = blosc.compress(arr, cname.encode(), 1, shuffle)
            typesize, did_shuffle, _ = blosc.cbuffer_metainfo(enc)
            assert typesize == arr.dtype.itemsize
            assert did_shuffle == shuffle
Beispiel #4
0
def test_compress_metainfo():
    for dtype in 'i1', 'i2', 'i4', 'i8':
        arr = np.arange(1000, dtype=dtype)
        for shuffle in Blosc.NOSHUFFLE, Blosc.SHUFFLE, Blosc.BITSHUFFLE:
            for use_threads in True, False, None:
                blosc.use_threads = use_threads
                for cname in blosc.list_compressors():
                    enc = blosc.compress(arr, cname.encode(), 1, shuffle)
                    typesize, did_shuffle, _ = blosc.cbuffer_metainfo(enc)
                    assert typesize == arr.dtype.itemsize
                    assert did_shuffle == shuffle
Beispiel #5
0
def test_compress_complib(use_threads):
    arr = np.arange(1000, dtype='i4')
    expected_complibs = {
        'lz4': 'LZ4',
        'lz4hc': 'LZ4',
        'blosclz': 'BloscLZ',
        'zlib': 'Zlib',
        'zstd': 'Zstd',
    }
    blosc.use_threads = use_threads
    for cname in blosc.list_compressors():
        enc = blosc.compress(arr, cname.encode(), 1, Blosc.NOSHUFFLE)
        complib = blosc.cbuffer_complib(enc)
        expected_complib = expected_complibs[cname]
        assert complib == expected_complib
    with pytest.raises(ValueError):
        # capitalized cname
        blosc.compress(arr, b'LZ4', 1)
    with pytest.raises(ValueError):
        # bad cname
        blosc.compress(arr, b'foo', 1)
Beispiel #6
0
def test_compress_blocksize():
    arr = np.arange(1000, dtype='i4')

    for use_threads in True, False, None:
        blosc.use_threads = use_threads

        # default blocksize
        enc = blosc.compress(arr, b'lz4', 1, Blosc.NOSHUFFLE)
        _, _, blocksize = blosc.cbuffer_sizes(enc)
        assert blocksize > 0

        # explicit default blocksize
        enc = blosc.compress(arr, b'lz4', 1, Blosc.NOSHUFFLE, 0)
        _, _, blocksize = blosc.cbuffer_sizes(enc)
        assert blocksize > 0

        # custom blocksize
        for bs in 2**7, 2**8:
            enc = blosc.compress(arr, b'lz4', 1, Blosc.NOSHUFFLE, bs)
            _, _, blocksize = blosc.cbuffer_sizes(enc)
            assert blocksize == bs
Beispiel #7
0
def test_compress_autoshuffle(use_threads):
    arr = np.arange(8000)
    for dtype in 'i1', 'i2', 'i4', 'i8', 'f2', 'f4', 'f8', 'bool', 'S10':
        varr = arr.view(dtype)
        blosc.use_threads = use_threads
        for cname in blosc.list_compressors():
            enc = blosc.compress(varr, cname.encode(), 1, Blosc.AUTOSHUFFLE)
            typesize, did_shuffle, _ = blosc.cbuffer_metainfo(enc)
            assert typesize == varr.dtype.itemsize
            if typesize == 1:
                assert did_shuffle == Blosc.BITSHUFFLE
            else:
                assert did_shuffle == Blosc.SHUFFLE