From 84e756ee8a9b7c83b921efd277ff624a0dd90bf6 Mon Sep 17 00:00:00 2001 From: Francesc Elies Henar Date: Mon, 19 Jun 2017 23:08:56 +0200 Subject: [PATCH 1/2] adds test Creates an array big enough where splitting is worthy, therefore the bit 4 `dont_split` is set to `False` --- test/test_headers.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/test/test_headers.py b/test/test_headers.py index 9da98791..de614ac9 100644 --- a/test/test_headers.py +++ b/test/test_headers.py @@ -172,6 +172,25 @@ def test_decode_blosc_header_uncompressible_data(): nt.assert_equal(expected, header) +def test_decode_blosc_header_uncompressible_data_dont_split_false(): + array_ = np.asarray(np.random.randn(256), + dtype=np.float32).tostring() + blosc_args = BloscArgs() + blosc_args.shuffle = True + compressed = blosc.compress(array_, **blosc_args) + header = decode_blosc_header(compressed) + expected = { + 'versionlz': 1, + 'version': 2, + 'blocksize': 1024, + 'ctbytes': len(array_) + 16, # original + 16 header bytes + 'flags': 0x3, # 1 for shuffle 2 for non-compressed + 'nbytes': len(array_), + 'typesize': blosc_args.typesize + } + nt.assert_equal(expected, header) + + def test_BloscPackHeader_constructor_exceptions(): # uses nose test generators From 090b1336c8ec1abe7e4099dafd54934cf1181ec1 Mon Sep 17 00:00:00 2001 From: Francesc Elies Henar Date: Mon, 19 Jun 2017 23:10:36 +0200 Subject: [PATCH 2/2] sets array size to max size allowed for `dont_split` true If a bigger array is created with this `typesize` the bit `dont_split` would be set to false. --- test/test_headers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_headers.py b/test/test_headers.py index de614ac9..21c9d626 100644 --- a/test/test_headers.py +++ b/test/test_headers.py @@ -156,14 +156,14 @@ def test_decode_blosc_header_deactivate_shuffle(): def test_decode_blosc_header_uncompressible_data(): - array_ = np.asarray(np.random.randn(23), + array_ = np.asarray(np.random.randn(255), dtype=np.float32).tostring() blosc_args = BloscArgs() blosc_args.shuffle = True compressed = blosc.compress(array_, **blosc_args) header = decode_blosc_header(compressed) expected = {'versionlz': 1, - 'blocksize': 88, + 'blocksize': 1016, 'ctbytes': len(array_) + 16, # original + 16 header bytes 'version': 2, 'flags': 0x13, # 1 for shuffle 2 for non-compressed 4 for small blocksize