Files
Jungfraujoch/tests/TIFFTest.cpp
T
2025-05-12 14:17:24 +02:00

54 lines
1.6 KiB
C++

// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#include <catch2/catch_all.hpp>
#include <fstream>
#include "../preview/JFJochTIFF.h"
#include "../preview/PreviewImage.h"
#include "../writer/HDF5Objects.h"
#include "../common/RawToConvertedGeometry.h"
TEST_CASE("TIFFTest","[TIFF]") {
std::vector<uint16_t> values(512*1024);
REQUIRE_NOTHROW(WriteTIFFToString(values.data(), 1024, 512, 2));
}
#include <iostream>
TEST_CASE("TIFFTest_Write_Read","[TIFF]") {
std::vector<uint32_t> values(512*1024), values_out;
for (int i = 0; i < values.size(); i++) {
values[i] = (i * 17 + 2);
}
std::string s;
REQUIRE_NOTHROW(s = WriteTIFFToString(values.data(), 1024, 512, 4));
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<uint16_t> values(512*1024);
for (auto &i: values)
i = 345;
REQUIRE_NOTHROW(WriteTIFFToFile("test_image.tiff", values.data(), 1024, 512, 2));
}
TEST_CASE("TIFFTest_File_signed","[TIFF]") {
std::vector<int16_t> values(512 * 1024);
for (int i = 0; i < values.size(); i++)
values[i] = static_cast<int16_t>(((i % 2 == 0) ? 1 : -1) * i);
REQUIRE_NOTHROW(WriteTIFFToFile("test_image_signed.tiff", values.data(), 1024, 512, 2, true));
}