Files
Jungfraujoch/tests/DetectorSetupTest.cpp

62 lines
2.8 KiB
C++

// Copyright (2019-2023) Paul Scherrer Institute
#include <catch2/catch.hpp>
#include "../common/DetectorSetup.h"
TEST_CASE("DetectorSetup_MismatchInSize") {
REQUIRE_THROWS(DetectorSetup(DetectorGeometry(8), "JF", {"mx1","mx2","mx3","mx4"}));
REQUIRE_THROWS(DetectorSetup(DetectorGeometry(2), "JF", {"mx1","mx2","mx3","mx4"}));
REQUIRE_NOTHROW(DetectorSetup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"}));
}
TEST_CASE("DetectorSetup_ProtoBuf") {
DetectorSetup setup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"});
JFJochProtoBuf::Detector detector = setup;
REQUIRE(detector.description() == "JF");
REQUIRE(detector.module_hostname_size() == 4);
REQUIRE(detector.module_hostname(3) == "mx4");
REQUIRE(detector.pixel_size_mm() == Approx(0.075));
REQUIRE(detector.nmodules() == 4);
REQUIRE(detector.geometry().module_geometry_size() == 4);
}
TEST_CASE("DetectorSetup_ProtoBuf_FullSpeed") {
DetectorSetup setup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"});
JFJochProtoBuf::Detector detector = setup;
REQUIRE(detector.udp_interface_count() == 2);
REQUIRE_NOTHROW(setup.UDPInterfaceCount(1));
REQUIRE_THROWS(setup.UDPInterfaceCount(0));
REQUIRE_THROWS(setup.UDPInterfaceCount(5));
REQUIRE_THROWS(setup.UDPInterfaceCount(-56));
detector = setup;
REQUIRE(detector.udp_interface_count() == 1);
}
TEST_CASE("DetectorSetup_LoadGainFile") {
DetectorSetup setup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"});
REQUIRE_THROWS(setup.LoadGain({}));
REQUIRE(setup.GetGainCalibration().empty());
REQUIRE_THROWS(setup.LoadGain({
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin"
}));
REQUIRE_THROWS(setup.LoadGain({
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin"
}));
REQUIRE_NOTHROW(setup.LoadGain({
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin",
"../../tests/test_data/gainMaps_M049.bin"
}));
REQUIRE(setup.GetGainCalibration().size() == 4);
}