// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #include #include #include "../preview/JFJochTIFF.h" #include "../preview/PreviewImage.h" #include "../writer/HDF5Objects.h" #include "../common/RawToConvertedGeometry.h" #include TEST_CASE("TIFFTest","[TIFF]") { std::vector values(512*1024); CompressedImage image(values, 1024, 512); REQUIRE_NOTHROW(WriteTIFFToString(image)); } TEST_CASE("TIFFTest_Write_Read","[TIFF]") { std::vector values(512*1024), values_out; for (int i = 0; i < values.size(); i++) { values[i] = (i * 17 + 2); } CompressedImage image(values, 1024, 512); std::string s; REQUIRE_NOTHROW(s = WriteTIFFToString(image)); uint32_t lines, cols; REQUIRE_NOTHROW(values_out = ReadTIFFFromString32(s, cols, lines)); REQUIRE(lines == 512); REQUIRE(cols == 1024); REQUIRE(values.size() == values_out.size()); REQUIRE(memcmp(values.data(), values_out.data(), cols * lines * sizeof(uint32_t)) == 0); } TEST_CASE("TIFFTest_File","[TIFF]") { std::vector values(512*1024); for (auto &i: values) i = 345; CompressedImage image(values, 1024, 512); REQUIRE_NOTHROW(WriteTIFFToFile("test_image.tiff", image)); } TEST_CASE("TIFFTest_File_signed","[TIFF]") { std::vector values(512 * 1024); for (int i = 0; i < values.size(); i++) values[i] = static_cast(((i % 2 == 0) ? 1 : -1) * i); CompressedImage image(values, 1024, 512); REQUIRE_NOTHROW(WriteTIFFToFile("test_image_signed.tiff", image)); } TEST_CASE("TIFFTest_File_rgb","[TIFF]") { std::vector values(512 * 1024); for (int i = 0; i < values.size(); i++) { float t = static_cast(i % 1024) / (1024 - 1); values[i] = rainbowColor(t); } CompressedImage image(values, 1024, 512); REQUIRE_NOTHROW(WriteTIFFToFile("test_image_rgb.tiff", image)); } TEST_CASE("TIFFTest_File_float","[TIFF]") { std::vector values(512 * 1024); for (int i = 0; i < values.size(); i++) values[i] = i / 100.0; CompressedImage image(values, 1024, 512); REQUIRE_NOTHROW(WriteTIFFToFile("test_image_float.tiff", image)); }