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
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
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
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
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)
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
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