version 1.0.0-rc.13
This commit is contained in:
@@ -52,7 +52,96 @@ TEST_CASE("FrameTransformation_Raw_NoCompression" ,"") {
|
||||
REQUIRE_NOTHROW(transformation.ProcessModule(input_1.data() + i * RAW_MODULE_SIZE, i, 1));
|
||||
}
|
||||
auto image = transformation.GetCompressedImage();
|
||||
REQUIRE(image.size == experiment.GetPixelDepth() * experiment.GetPixelsNum());
|
||||
REQUIRE(image.size == experiment.GetByteDepthImage() * experiment.GetPixelsNum());
|
||||
auto output = (int16_t *) image.data;
|
||||
|
||||
uint32_t diff_0 = 0;
|
||||
uint32_t diff_1 = 0;
|
||||
|
||||
for (int i = 0; i < nmodules*RAW_MODULE_SIZE; i++) {
|
||||
if (input_0[i] != output[i]) diff_0++;
|
||||
if (input_1[i] != output[i + nmodules*RAW_MODULE_SIZE]) diff_1++;
|
||||
}
|
||||
REQUIRE(diff_0 == 0);
|
||||
REQUIRE(diff_1 == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("FrameTransformation_Raw_NoCompression_bshuf_lz4" ,"") {
|
||||
const uint16_t nmodules = 4;
|
||||
const uint16_t ndatastreams = 2;
|
||||
DiffractionExperiment experiment(DetectorGeometry(ndatastreams * nmodules, 1));
|
||||
experiment.DataStreams(ndatastreams);
|
||||
|
||||
experiment.Mode(DetectorMode::Raw);
|
||||
experiment.Compression(CompressionAlgorithm::BSHUF_LZ4);
|
||||
|
||||
FrameTransformation transformation(experiment);
|
||||
|
||||
std::mt19937 g1(1587);
|
||||
std::uniform_int_distribution<int16_t> dist;
|
||||
|
||||
std::vector<int16_t> input_0(nmodules*RAW_MODULE_SIZE);
|
||||
for (int i = 0; i < nmodules*RAW_MODULE_SIZE; i++)
|
||||
input_0[i] = dist(g1);
|
||||
|
||||
std::vector<int16_t> input_1(nmodules*RAW_MODULE_SIZE);
|
||||
for (int i = 0; i < nmodules*RAW_MODULE_SIZE; i++)
|
||||
input_1[i] = dist(g1);
|
||||
|
||||
for (int i = 0; i < nmodules; i++) {
|
||||
REQUIRE_NOTHROW(transformation.ProcessModule(input_0.data() + i * RAW_MODULE_SIZE, i, 0));
|
||||
REQUIRE_NOTHROW(transformation.ProcessModule(input_1.data() + i * RAW_MODULE_SIZE, i, 1));
|
||||
}
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetByteDepthImage());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize *
|
||||
experiment.GetByteDepthImage());
|
||||
|
||||
std::vector<int16_t> output;
|
||||
REQUIRE_NOTHROW(JFJochDecompress(output, experiment.GetCompressionAlgorithm(), image.data, image.size,
|
||||
experiment.GetPixelsNum()));
|
||||
|
||||
uint32_t diff_0 = 0;
|
||||
uint32_t diff_1 = 0;
|
||||
|
||||
for (int i = 0; i < nmodules*RAW_MODULE_SIZE; i++) {
|
||||
if (input_0[i] != output[i]) diff_0++;
|
||||
if (input_1[i] != output[i + nmodules*RAW_MODULE_SIZE]) diff_1++;
|
||||
}
|
||||
REQUIRE(diff_0 == 0);
|
||||
REQUIRE(diff_1 == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("FrameTransformation_Conversion_NoGeomTransformation_NoCompression" ,"") {
|
||||
const uint16_t nmodules = 4;
|
||||
const uint16_t ndatastreams = 2;
|
||||
DiffractionExperiment experiment(DetectorGeometry(ndatastreams * nmodules, 1));
|
||||
experiment.DataStreams(ndatastreams);
|
||||
|
||||
experiment.Mode(DetectorMode::Conversion).GeometryTransformation(false);
|
||||
experiment.Compression(CompressionAlgorithm::NO_COMPRESSION);
|
||||
|
||||
FrameTransformation transformation(experiment);
|
||||
|
||||
std::mt19937 g1(1587);
|
||||
std::uniform_int_distribution<int16_t> dist;
|
||||
|
||||
std::vector<int16_t> input_0(nmodules*RAW_MODULE_SIZE);
|
||||
for (int i = 0; i < nmodules*RAW_MODULE_SIZE; i++)
|
||||
input_0[i] = dist(g1);
|
||||
|
||||
std::vector<int16_t> input_1(nmodules*RAW_MODULE_SIZE);
|
||||
for (int i = 0; i < nmodules*RAW_MODULE_SIZE; i++)
|
||||
input_1[i] = dist(g1);
|
||||
|
||||
for (int i = 0; i < nmodules; i++) {
|
||||
REQUIRE_NOTHROW(transformation.ProcessModule(input_0.data() + i * RAW_MODULE_SIZE, i, 0));
|
||||
REQUIRE_NOTHROW(transformation.ProcessModule(input_1.data() + i * RAW_MODULE_SIZE, i, 1));
|
||||
}
|
||||
auto image = transformation.GetCompressedImage();
|
||||
REQUIRE(image.size == experiment.GetByteDepthImage() * experiment.GetPixelsNum());
|
||||
auto output = (int16_t *) image.data;
|
||||
|
||||
uint32_t diff_0 = 0;
|
||||
@@ -92,7 +181,7 @@ TEST_CASE("FrameTransformation_Converted_NoCompression" ,"") {
|
||||
}
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
REQUIRE(image.size == experiment.GetPixelDepth() * experiment.GetPixelsNum());
|
||||
REQUIRE(image.size == experiment.GetByteDepthImage() * experiment.GetPixelsNum());
|
||||
auto output = (int16_t *) image.data;
|
||||
|
||||
REQUIRE(input_0[511*1024] == output[CONVERTED_MODULE_SIZE * (2 * nmodules - 2) + 0]);
|
||||
@@ -146,8 +235,9 @@ TEST_CASE("FrameTransformation_Converted_bshuf_lz4" ,"") {
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetByteDepthImage());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize *
|
||||
experiment.GetByteDepthImage());
|
||||
|
||||
std::vector<uint16_t> output;
|
||||
REQUIRE_NOTHROW(JFJochDecompress(output, experiment.GetCompressionAlgorithm(), image.data, image.size,
|
||||
@@ -203,8 +293,9 @@ TEST_CASE("FrameTransformation_Converted_bshuf_zstd" ,"") {
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetByteDepthImage());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize *
|
||||
experiment.GetByteDepthImage());
|
||||
|
||||
std::vector<uint16_t> output;
|
||||
REQUIRE_NOTHROW(JFJochDecompress(output, experiment.GetCompressionAlgorithm(), image.data, image.size,
|
||||
@@ -260,8 +351,9 @@ TEST_CASE("FrameTransformation_Converted_bshuf_zstd_rle" ,"") {
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetByteDepthImage());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize *
|
||||
experiment.GetByteDepthImage());
|
||||
|
||||
std::vector<uint16_t> output;
|
||||
REQUIRE_NOTHROW(JFJochDecompress(output, experiment.GetCompressionAlgorithm(), image.data, image.size,
|
||||
@@ -293,7 +385,7 @@ TEST_CASE("FrameTransformation_Converted_bshuf_zstd_32bit" ,"") {
|
||||
DiffractionExperiment experiment(DetectorGeometry(ndatastreams * nmodules, 2));
|
||||
experiment.DataStreams(ndatastreams);
|
||||
|
||||
experiment.Mode(DetectorMode::Conversion).Compression(CompressionAlgorithm::BSHUF_ZSTD).FPGAOutputMode(FPGAPixelOutput::Int32);
|
||||
experiment.Mode(DetectorMode::Conversion).Compression(CompressionAlgorithm::BSHUF_ZSTD).BitDepthImage(32);
|
||||
|
||||
FrameTransformation transformation(experiment);
|
||||
|
||||
@@ -320,8 +412,9 @@ TEST_CASE("FrameTransformation_Converted_bshuf_zstd_32bit" ,"") {
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetByteDepthImage());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize *
|
||||
experiment.GetByteDepthImage());
|
||||
|
||||
std::vector<uint32_t> output;
|
||||
REQUIRE_NOTHROW(JFJochDecompress(output, experiment.GetCompressionAlgorithm(), image.data, image.size,
|
||||
@@ -355,10 +448,10 @@ TEST_CASE("FrameTransformation_Converted_bshuf_zstd_unsigned_16bit" ,"") {
|
||||
DiffractionExperiment experiment(DetectorGeometry(ndatastreams * nmodules, 2));
|
||||
experiment.DataStreams(ndatastreams);
|
||||
|
||||
experiment.Mode(DetectorMode::Conversion).Compression(CompressionAlgorithm::BSHUF_ZSTD).FPGAOutputMode(FPGAPixelOutput::Uint16);
|
||||
experiment.Mode(DetectorMode::Conversion).Compression(CompressionAlgorithm::BSHUF_ZSTD).PixelSigned(false);
|
||||
|
||||
REQUIRE(!experiment.IsPixelSigned());
|
||||
REQUIRE(experiment.GetPixelDepth() == 2);
|
||||
REQUIRE(experiment.GetByteDepthImage() == 2);
|
||||
|
||||
FrameTransformation transformation(experiment);
|
||||
|
||||
@@ -386,8 +479,9 @@ TEST_CASE("FrameTransformation_Converted_bshuf_zstd_unsigned_16bit" ,"") {
|
||||
|
||||
auto image = transformation.GetCompressedImage();
|
||||
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize * experiment.GetPixelDepth());
|
||||
REQUIRE(read_be64(image.data) == experiment.GetPixelsNum() * experiment.GetByteDepthImage());
|
||||
REQUIRE(read_be32(image.data+8) == JFJochBitShuffleCompressor::DefaultBlockSize *
|
||||
experiment.GetByteDepthImage());
|
||||
|
||||
std::vector<uint16_t> output;
|
||||
REQUIRE_NOTHROW(JFJochDecompress(output, experiment.GetCompressionAlgorithm(), image.data, image.size,
|
||||
|
||||
Reference in New Issue
Block a user