Improve plotting

This commit is contained in:
2024-03-31 23:08:19 +02:00
parent 8cad89d649
commit 30e775d8a2
122 changed files with 4640 additions and 1149 deletions

View File

@@ -48,6 +48,7 @@ TEST_CASE("CBORSerialize_Start", "[CBOR]") {
.series_unique_id = "bla",
.series_id = 4567,
.gain_file_names = {"abc" , "def", "/dsadasdsa/dadsadas/dsadsa/M056.bin"},
.roi_names = {"roi0", "roi1"},
.omega = {
.increment = 0.1f,
.start = 10.0f,
@@ -63,7 +64,6 @@ TEST_CASE("CBORSerialize_Start", "[CBOR]") {
.az_int_bin_to_q = {0.1, 0.2, 0.3, 0.5},
.total_flux = 123,
.attenuator_transmission = 0.345,
.roi_summation_area = ROIRectangle{12,15,17,29},
.user_data = "Some random string 12345"
};
@@ -136,12 +136,8 @@ TEST_CASE("CBORSerialize_Start", "[CBOR]") {
REQUIRE (output_message.attenuator_transmission);
CHECK(output_message.attenuator_transmission.value() == message.attenuator_transmission.value());
CHECK(output_message.user_data == message.user_data);
REQUIRE(output_message.roi_summation_area);
CHECK(output_message.roi_summation_area->x_min == message.roi_summation_area->x_min);
CHECK(output_message.roi_summation_area->x_max == message.roi_summation_area->x_max);
CHECK(output_message.roi_summation_area->y_min == message.roi_summation_area->y_min);
CHECK(output_message.roi_summation_area->y_max == message.roi_summation_area->y_max);
CHECK(output_message.gain_file_names == message.gain_file_names);
CHECK(output_message.roi_names == message.roi_names);
CHECK(output_message.countrate_correction_enabled == message.countrate_correction_enabled);
CHECK(output_message.flatfield_enabled == message.flatfield_enabled);
}
@@ -390,7 +386,6 @@ TEST_CASE("CBORSerialize_Image", "[CBOR]") {
.jf_info = UINT32_MAX,
.receiver_aq_dev_delay = 2323,
.storage_cell = 0xF,
.roi_sum = 456,
.xfel_pulse_id = UINT64_MAX - 5678,
.xfel_event_code = UINT64_MAX - 123,
};
@@ -430,7 +425,6 @@ TEST_CASE("CBORSerialize_Image", "[CBOR]") {
REQUIRE(image_array.bkg_estimate == message.bkg_estimate);
REQUIRE(image_array.image_collection_efficiency == message.image_collection_efficiency);
REQUIRE(image_array.user_data == message.user_data);
REQUIRE(image_array.roi_sum == message.roi_sum);
}
TEST_CASE("CBORSerialize_Image_2", "[CBOR]") {
@@ -618,7 +612,7 @@ TEST_CASE("CBORSerialize_Image_Rad_Int_Profile", "[CBOR]") {
TEST_CASE("CBORSerialize_Image_Spots", "[CBOR]") {
std::vector<uint8_t> buffer(8*1024*1024);
CBORStream2Serializer serializer(buffer.data(), buffer.size());
CBORStream2Serializer serializer(buffer.data(), buffer.size());
std::vector<SpotToSave> spots;
spots.push_back(SpotToSave{.x = 7, .y = 8, .intensity = 34, .indexed = false});
@@ -667,6 +661,56 @@ CBORStream2Serializer serializer(buffer.data(), buffer.size());
REQUIRE(image_array.spots[1].indexed);
}
TEST_CASE("CBORSerialize_Image_ROI", "[CBOR]") {
std::vector<uint8_t> buffer(8*1024*1024);
CBORStream2Serializer serializer(buffer.data(), buffer.size());
std::vector<uint8_t> test(1024);
for (int i = 0; i < test.size(); i++)
test[i] = (i * 253 + 56) % 256;
CompressedImage image {
.data = test.data(),
.size = 1024,
.xpixel = 256,
.ypixel = 2,
.pixel_depth_bytes = 2,
.algorithm = CompressionAlgorithm::NO_COMPRESSION,
.channel = "default"
};
DataMessage message {
.number = 789,
.image = image,
};
message.roi["roi0"] = {.sum = -876, .sum_square = 89998, .max_count = -1, .pixels = 4567};
message.roi["roi1"] = {.sum = 876, .sum_square = 998, .max_count = 12, .pixels = 234};
REQUIRE_NOTHROW(serializer.SerializeImage(message));
CBORStream2Deserializer deserializer;
REQUIRE_NOTHROW(deserializer.Process(buffer.data(), serializer.GetBufferSize()));
REQUIRE(deserializer.GetType() == CBORStream2Deserializer::Type::IMAGE);
auto image_array = deserializer.GetDataMessage();
REQUIRE(image_array.number == 789);
REQUIRE(image_array.roi.size() == 2);
REQUIRE(image_array.roi.contains("roi0"));
REQUIRE(image_array.roi.contains("roi1"));
CHECK(image_array.roi["roi0"].sum == message.roi["roi0"].sum);
CHECK(image_array.roi["roi0"].sum_square == message.roi["roi0"].sum_square);
CHECK(image_array.roi["roi0"].max_count == message.roi["roi0"].max_count);
CHECK(image_array.roi["roi0"].pixels == message.roi["roi0"].pixels);
CHECK(image_array.roi["roi1"].sum == message.roi["roi1"].sum);
CHECK(image_array.roi["roi1"].sum_square == message.roi["roi1"].sum_square);
CHECK(image_array.roi["roi1"].max_count == message.roi["roi1"].max_count);
CHECK(image_array.roi["roi1"].pixels == message.roi["roi1"].pixels);
}
inline bool CmpString(const char *str1, const std::string& str2) {
return (strncmp(str1, str2.c_str(), str2.size()) == 0);
}