mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-08-09 20:40:30 +02:00
Fixing test until it works
This commit is contained in:
@@ -25,7 +25,7 @@ TEST(WriterH5Writer, basic_interaction)
|
|||||||
TEST(WriterH5Writer, test_compression)
|
TEST(WriterH5Writer, test_compression)
|
||||||
{
|
{
|
||||||
size_t n_modules = 2;
|
size_t n_modules = 2;
|
||||||
size_t n_frames = 5;
|
size_t n_frames = 2;
|
||||||
|
|
||||||
auto comp_buffer_size = bshuf_compress_lz4_bound(
|
auto comp_buffer_size = bshuf_compress_lz4_bound(
|
||||||
MODULE_N_PIXELS, PIXEL_N_BYTES, MODULE_N_PIXELS);
|
MODULE_N_PIXELS, PIXEL_N_BYTES, MODULE_N_PIXELS);
|
||||||
@@ -34,26 +34,27 @@ TEST(WriterH5Writer, test_compression)
|
|||||||
auto f_comp_buffer = make_unique<char[]>(comp_buffer_size);
|
auto f_comp_buffer = make_unique<char[]>(comp_buffer_size);
|
||||||
|
|
||||||
auto i_comp_buffer = make_unique<char[]>(
|
auto i_comp_buffer = make_unique<char[]>(
|
||||||
(comp_buffer_size * n_modules) + 12);
|
(comp_buffer_size * n_modules) + WRITER_COMPRESSION_HEADER_BYTES);
|
||||||
auto i_raw_buffer = make_unique<uint16_t[]>((MODULE_N_PIXELS * n_modules));
|
auto i_raw_buffer = make_unique<uint16_t[]>(
|
||||||
|
MODULE_N_PIXELS * n_modules * n_frames);
|
||||||
|
|
||||||
bshuf_write_uint64_BE(i_comp_buffer.get(),
|
bshuf_write_uint64_BE(&i_comp_buffer[0],
|
||||||
MODULE_N_BYTES * n_modules);
|
MODULE_N_BYTES * n_modules);
|
||||||
bshuf_write_uint32_BE(i_comp_buffer.get() + 8,
|
bshuf_write_uint32_BE(&i_comp_buffer[8],
|
||||||
MODULE_N_PIXELS * PIXEL_N_BYTES);
|
MODULE_N_PIXELS * PIXEL_N_BYTES);
|
||||||
|
|
||||||
size_t total_compressed_size = 0;
|
size_t total_compressed_size = WRITER_COMPRESSION_HEADER_BYTES;
|
||||||
for (int i_module=0; i_module<n_modules; i_module++) {
|
for (int i_module=0; i_module<n_modules; i_module++) {
|
||||||
|
|
||||||
for (size_t i=0; i<MODULE_N_PIXELS; i++) {
|
for (size_t i=0; i<MODULE_N_PIXELS; i++) {
|
||||||
f_raw_buffer[i] = (uint16_t) i_module;
|
f_raw_buffer[i] = (uint16_t)((i % 100) + (i_module*100));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto compressed_size = bshuf_compress_lz4(
|
auto compressed_size = bshuf_compress_lz4(
|
||||||
f_raw_buffer.get(), f_comp_buffer.get(),
|
f_raw_buffer.get(), f_comp_buffer.get(),
|
||||||
MODULE_N_PIXELS, PIXEL_N_BYTES, MODULE_N_PIXELS);
|
MODULE_N_PIXELS, PIXEL_N_BYTES, MODULE_N_PIXELS);
|
||||||
|
|
||||||
memcpy((i_comp_buffer.get() + 12 + total_compressed_size),
|
memcpy((i_comp_buffer.get() + total_compressed_size),
|
||||||
f_comp_buffer.get(),
|
f_comp_buffer.get(),
|
||||||
compressed_size);
|
compressed_size);
|
||||||
|
|
||||||
@@ -68,13 +69,23 @@ TEST(WriterH5Writer, test_compression)
|
|||||||
metadata->pulse_id = 3;
|
metadata->pulse_id = 3;
|
||||||
metadata->daq_rec = 3;
|
metadata->daq_rec = 3;
|
||||||
|
|
||||||
|
auto result = bshuf_decompress_lz4(
|
||||||
|
&i_comp_buffer[12], &i_raw_buffer[0],
|
||||||
|
MODULE_N_PIXELS*n_modules, PIXEL_N_BYTES, MODULE_N_PIXELS);
|
||||||
|
|
||||||
WriterH5Writer writer("ignore.h5", n_frames, n_modules);
|
WriterH5Writer writer("ignore.h5", n_frames, n_modules);
|
||||||
writer.write(metadata.get(), i_comp_buffer.get());
|
writer.write(metadata.get(), &i_comp_buffer[0]);
|
||||||
writer.close_file();
|
writer.close_file();
|
||||||
|
|
||||||
H5::H5File reader("ignore.h5", H5F_ACC_RDONLY);
|
H5::H5File reader("ignore.h5", H5F_ACC_RDONLY);
|
||||||
auto image_dataset = reader.openDataSet("image");
|
auto image_dataset = reader.openDataSet("image");
|
||||||
image_dataset.read(i_raw_buffer.get(), H5T_NATIVE_UINT16);
|
image_dataset.read(&i_raw_buffer[0], H5::PredType::NATIVE_UINT16);
|
||||||
|
|
||||||
ASSERT_EQ(1, 1);
|
for (int i_module=0; i_module<n_modules; i_module++) {
|
||||||
|
for (int i_pixel=0; i_pixel<MODULE_N_PIXELS; i_pixel++) {
|
||||||
|
size_t offset = (i_module * MODULE_N_PIXELS) + i_pixel;
|
||||||
|
ASSERT_EQ(i_raw_buffer[offset],
|
||||||
|
(uint16_t)((i_pixel % 100) + (i_module*100)));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user