v1.0.0-rc.72

This commit is contained in:
2025-09-08 20:28:59 +02:00
parent 6c88c6902e
commit c67337cfe1
275 changed files with 7525 additions and 1039 deletions
+60
View File
@@ -822,6 +822,66 @@ TEST_CASE("CBORSerialize_Image_Spots", "[CBOR]") {
REQUIRE(image_array.spots[1].indexed);
}
TEST_CASE("CBORSerialize_Image_Reflections") {
// Prepare a few reflections with distinct values
std::vector<Reflection> refs_in;
refs_in.push_back(Reflection{
.h = 1, .k = 0, .l = -1,
.predicted_x = 1024.5f, .predicted_y = 768.25f,
.d = 2.345f
});
refs_in.push_back(Reflection{
.h = -3, .k = 2, .l = 7,
.predicted_x = 5.0f, .predicted_y = 10.0f,
.d = 4.0f
});
refs_in.push_back(Reflection{
.h = 0, .k = 0, .l = 1,
.predicted_x = 0.0f, .predicted_y = 0.0f,
.d = 10.0f
});
// Minimal DataMessage carrying reflections
std::vector<uint16_t> test(512);
CompressedImage image(test, 256, 2);
DataMessage msg_in {
.number = 789,
.image = image,
.reflections = refs_in
};
// Serialize
std::vector<uint8_t> buffer(1 << 20); // 1 MB buffer for safety
CBORStream2Serializer ser(buffer.data(), buffer.size());
ser.SerializeImage(msg_in);
// Deserialize
auto deserialized = CBORStream2Deserialize(buffer.data(), ser.GetBufferSize());
REQUIRE(deserialized);
REQUIRE(deserialized->msg_type == CBORImageType::IMAGE);
REQUIRE(deserialized->data_message);
DataMessage &msg_out = *deserialized->data_message;
// Check reflections
REQUIRE(msg_out.reflections.size() == refs_in.size());
for (size_t i = 0; i < refs_in.size(); ++i) {
const auto& a = refs_in[i];
const auto& b = msg_out.reflections[i];
CHECK(a.h == b.h);
CHECK(a.k == b.k);
CHECK(a.l == b.l);
CHECK(b.predicted_x == Catch::Approx(a.predicted_x).margin(1e-6f));
CHECK(b.predicted_y == Catch::Approx(a.predicted_y).margin(1e-6f));
CHECK(b.d == Catch::Approx(a.d).margin(1e-6f));
}
}
TEST_CASE("CBORSerialize_Image_ROI", "[CBOR]") {
std::vector<uint8_t> buffer(8*1024*1024);
CBORStream2Serializer serializer(buffer.data(), buffer.size());