From 55a74f58896c603cbf69ae4b657656ea071b9e6b Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Wed, 13 May 2020 15:20:20 +0200 Subject: [PATCH] Test concat of separately compressed segments --- core-buffer/test/test_bitshuffle.cpp | 72 +++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/core-buffer/test/test_bitshuffle.cpp b/core-buffer/test/test_bitshuffle.cpp index 7f7a919..cc4ca45 100644 --- a/core-buffer/test/test_bitshuffle.cpp +++ b/core-buffer/test/test_bitshuffle.cpp @@ -8,7 +8,7 @@ TEST(bitshuffle, simple_compression) { auto size = MODULE_N_PIXELS; auto elem_size = 2; // uint16_t - auto block_size = MODULE_N_BYTES; + auto block_size = MODULE_N_PIXELS; auto compress_buffer_size = bshuf_compress_lz4_bound( size, elem_size, block_size); @@ -38,4 +38,74 @@ TEST(bitshuffle, simple_compression) for (size_t i=0; i(MODULE_N_PIXELS); + + // Set specific values to pixels and compress each chunk individually. + auto compress_buffer_1 = make_unique(compress_buffer_size); + for (size_t i=0; i 0); + + auto compress_buffer_2 = make_unique(compress_buffer_size); + for (size_t i=0; i 0); + + // Allocate common compression buffer to concat them together. + auto sum_compressed_size = compressed_size_1 + compressed_size_2; + auto sum_compressed_buffer = make_unique(sum_compressed_size); + + // Concat the 2 buffers one after the other. + memcpy( + &(sum_compressed_buffer[0]), + &(compress_buffer_1[0]), + compressed_size_1); + memcpy( + &(sum_compressed_buffer[compressed_size_1]), + &(compress_buffer_2[0]), + compressed_size_2); + + // Verify that the memcpy was correct. + for (size_t i=0; i(MODULE_N_PIXELS*2); + auto consumed_bytes = bshuf_decompress_lz4( + sum_compressed_buffer.get(), out_frame_buffer.get(), + size*2, elem_size, block_size); + ASSERT_EQ(consumed_bytes, sum_compressed_size); + + // Verify that concat output buffer has correct specific values. + for (size_t i=0;i